{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ " # [EEP 147]: Introduction to Python and Programming" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we will go over simple techniques in Python and Matplotlib that you can use to generate graphs that will help you in analyzing the ESG!\n", "\n", "\n", "First on our agenda is to import **dependencies** -- or packages in Python that add to the basic functions in Python. Kind of like accessorizing! For example, `matplotlib` allows us to generate the graphs we will be using.\n", "\n", "The format is as follows: from (package) import (stuff), where the \"stuff\" we're importing can range from a specific function in that package to a whole library of functions, as is the case when we type import (package) as (name)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from datascience import *\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Before we begin...\n", "Please help us better establish the audience that we are reaching by filling out the following form:
\n", "*insert link here!*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Section 1: Math in Python \n", "\n", "Python is the programming language that we will use in this lab. Although this lab will go over some basics, should you be more interested in learning Python feel free to check out the following resources:\n", "\n", "* **[Python Tutorial](https://docs.python.org/3.5/tutorial/)**: Introduction to Python from the creators of Python\n", "* **[Composing Programs](http://composingprograms.com/pages/11-getting-started.html)**: An introduction to programming with Python from CS 61A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Mathematical Expressions**\n", "In Python, we can carry out all the mathematical processes you know and love:\n", "\n", "* Add using `+`\n", "* Subtract using `-`\n", "* Multiply using `*`\n", "* Divide using `/`\n", "* Exponentiate using `**`\n", "* Floor divide using `//`\n", "* Take the remainder / modulo using `%`\n", "\n", "The most of these you should be familiar with, but let's go over some of the more obscure processes while beginning to implement some python code!\n", "\n", "To submit the following cells and run the code, press Shift + Enter/Return!" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# So what exactly does floor divide do?\n", "10 // 3" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# What about modulo?\n", "10 % 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Very cool! Now we'll let you try, and notice that we can use parentheses to organize our order of operations.\n", "\n", "**Exercise**: Take the product of *three* and *three to the power of six* and subtract 169." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Insert your code where the dots are:\n", "..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Awesome job! Feel free to add more cells using the + button in the upper left hand corner of the lab and play around with more mathematical expressions later! In the meantime, let's move on to the next section." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Section 2: Variables\n", "\n", "As you might recall, a name that is used to denote a value is called a variable. In python, variables can be declared and values can be assigned. Here are a few examples of variables and their assignment:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 2\n", "m = 3\n", "b = 4\n", "y = m*x + b\n", "# Look familiar? Press shift + enter to see the value!\n", "y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Output and Printing**\n", "\n", "As you might have noticed at the end, there is a difference between returning and printing:\n", "\n", "* **Return**: A value that is not necessarily printed, but is stored away inside a computer if we assign or bind it to a name.\n", "* **Printing**: A value that pops up on our screen.\n", "We print using a **print** function and return a value using the **return** function.\n", "\n", "**Functions?**\n", "\n", "You might recall that a function receives input and correspondingly will output something. In Python, we have numerous functions, such as:\n", "\n", "* `print`: The command `print('hi')` will print 'hi' out to the screen.\n", "* `sum`: The command `sum(2,3,4)` will sum up the values enclosed in the parentheses and return the value.\n", "* And more!\n", "\n", "The best thing about functions is that, in Python, we can make our own functions! We will discuss this more in depth later, but for now just remember that to call a function, we write the name of the function, like `print()` and we place our arguments inside the parentheses. \n", "\n", "Let's try it for ourselves!\n", "\n", "**Exercise**: Try printing out the phrase 'Hello World!'" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ellipsis" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Section 3: Functions and Loops\n", "\n", "A function is a block of organized, reusable code that is used to perform a single, related action. Take for example a factorial, denoted `x!`, which takes the initial value `x` and multiplies it by `x-1` and `x-2` and so on and so forth until it gets to 1! Typing this all out would look something like this:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "120" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Let's pick a random value for x:\n", "x = 5\n", "factorial = 5 * 4 * 3 * 2 * 1\n", "factorial" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This might not seem too troublesome now, but imagine doing this by hand for a larger number like 12,345! Instead, let's consider writing a function that can take in any value (such as 12,345) and output the factorial!\n", "\n", "**Function Structure**\n", "\n", "So how can we begin writing a function? Well there is a very simple structure to them:\n", "\n", "**def** function_name(arguments):\n", " [function procedures]\n", " **return** [output]\n", " \n", "There are some aspects of a function that are required no matter what kind of function you are writing. You will always begin writing a function by writing **def**, followed by the name of your function. Following the name of your function, you will want to specify your inputs by using parentheses and giving your inputs names. These names can be anything you'd like, but generally you'd like them to be memorable and symbolic of what you're trying to do.\n", "\n", "Before typing in your functions procedure in the **body** of your function, you'll want to end the first line with a `:`. Then you're ready to proceed to the body and second line of your function! You will want to indent (press tab or space 4 times) and write what you'd like your function to do.\n", "\n", "Lastly, you'll want to end the function by writing what you'd like your function to **return**.\n", "\n", "**Example**: Let's look at what a factorial function would look like!" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "120" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def factorial_func(x):\n", " product = 1\n", " while x > 0:\n", " product = product * x\n", " x = x - 1\n", " return product\n", "\n", "# Now let's test out our new factorial function!\n", "factorial_func(5)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Try calculating the factorial value for the crazy big number from before!\n", "factorial_func(12345)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Amazing! However, you might have noticed there were some new features used, which brings us to our next small topic.\n", "\n", "**Loops**\n", "\n", "Something that came in handy for this equation was a loop. A loop is a piece of code that repeats a block of code **while** a condition is true or **for** a certain number of times. Like we just not-so-subtly hinted, there are two very important kinds of loops: for loops and while loops. In the case of our function above, the code under the while loop was repeated **while** `x > 0`. On the other hand, a for loop will continue looping **for** a specified number of times." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Section 4: Data Structures\n", "\n", "So now that we know how to calculate things and create functions to do so, how can we organize large amounts of information?\n", "\n", "The solution to our problem is a data structure! A data structures is simply a means by which to contain and organize our data or information. They include:\n", "* **List**: A list holds an ordered collection of items similar to a grocery list.\n", "* **Dictionary**: Like an addressbook in which keys are associated with values (similar to names and phone numbers in addressbooks).\n", "* **Set**: An unordered collection of items, and they operate similar to how Venn Diagrams do.\n", "\n", "Here is how we can use lists:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Helen', 'Nadeem', 'Alma', 'Nika']" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Creating a list using brackets and commas in between:\n", "names = ['Helen', 'Nadeem', 'Alma', 'Nika']\n", "names" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Helen'" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The first name in our list, located at position 0:\n", "names[0]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Helen', 'Nadeem', 'Alma', 'Nika', 'Sam']" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Adding a name, feel free to change the name to yours!\n", "names.append('Sam')\n", "names" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**: Now you try creating a list with the names of some of your friends or pets!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Create your list below:\n", "..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition to the data structures listed above, we can also organize our information in a table. Similar to Google Sheets or Microsoft Excel, we will be organzing our data into nice-looking tables. Let's get crackin'!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Section 5: Tables\n", "\n", "# INSERT TABLES INTRO HERE\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#####################SEPARATOR######################" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ESG_table = Table.read_table('ESGPorfolios_forcsv.csv')\n", "ESG_sorted = ESG_table.sort(\"Total_Var_Cost_USDperMWH\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Group Group_num UNIT NAME Capacity_MW Heat_Rate_MMBTUperMWh Fuel_Price_USDperMMBTU Fuel_Cost_USDperMWH Var_OandM_USDperMWH Total_Var_Cost_USDperMWH Carbon_tonsperMWH FixedCst_OandM_perDay Unnamed: 11 Unnamed: 12 Unnamed: 13
Old Timers 7 BIG CREEK 1000 nan 0 0 0 0 0 $15,000 nan nan nan
Fossil Light 8 HELMS 800 nan 0 0 0.5 0.5 0 $15,000 nan nan nan
Fossil Light 8 DIABLO CANYON 1 1000 1 7.5 7.5 4 11.5 0 $20,000 nan nan nan
Bay Views 4 MOSS LANDING 6 750 6.9 4.5 31.06 1.5 32.56 0.37 $8,000 nan nan nan
Bay Views 4 MOSS LANDING 7 750 6.9 4.5 31.06 1.5 32.56 0.37 $8,000 nan nan nan
Old Timers 7 MOHAVE 1 750 10 3 30 4.5 34.5 0.94 $15,000 nan nan nan
Old Timers 7 MOHAVE 2 750 10 3 30 4.5 34.5 0.94 $15,000 nan nan nan
Big Coal 1 FOUR CORNERS 1900 11.67 3 35 1.5 36.5 1.1 $8,000 nan nan nan
Bay Views 4 MORRO BAY 3&4 665 8.02 4.5 36.11 0.5 36.61 0.43 $4,000 nan nan nan
East Bay 6 PITTSBURGH 5&6 650 8.02 4.5 36.11 0.5 36.61 0.43 $2,500 nan nan nan
\n", "

... (32 rows omitted)

" ], "text/plain": [ "Group | Group_num | UNIT NAME | Capacity_MW | Heat_Rate_MMBTUperMWh | Fuel_Price_USDperMMBTU | Fuel_Cost_USDperMWH | Var_OandM_USDperMWH | Total_Var_Cost_USDperMWH | Carbon_tonsperMWH | FixedCst_OandM_perDay | Unnamed: 11 | Unnamed: 12 | Unnamed: 13\n", "Old Timers | 7 | BIG CREEK | 1000 | nan | 0 | 0 | 0 | 0 | 0 | $15,000 | nan | nan | nan\n", "Fossil Light | 8 | HELMS | 800 | nan | 0 | 0 | 0.5 | 0.5 | 0 | $15,000 | nan | nan | nan\n", "Fossil Light | 8 | DIABLO CANYON 1 | 1000 | 1 | 7.5 | 7.5 | 4 | 11.5 | 0 | $20,000 | nan | nan | nan\n", "Bay Views | 4 | MOSS LANDING 6 | 750 | 6.9 | 4.5 | 31.06 | 1.5 | 32.56 | 0.37 | $8,000 | nan | nan | nan\n", "Bay Views | 4 | MOSS LANDING 7 | 750 | 6.9 | 4.5 | 31.06 | 1.5 | 32.56 | 0.37 | $8,000 | nan | nan | nan\n", "Old Timers | 7 | MOHAVE 1 | 750 | 10 | 3 | 30 | 4.5 | 34.5 | 0.94 | $15,000 | nan | nan | nan\n", "Old Timers | 7 | MOHAVE 2 | 750 | 10 | 3 | 30 | 4.5 | 34.5 | 0.94 | $15,000 | nan | nan | nan\n", "Big Coal | 1 | FOUR CORNERS | 1900 | 11.67 | 3 | 35 | 1.5 | 36.5 | 1.1 | $8,000 | nan | nan | nan\n", "Bay Views | 4 | MORRO BAY 3&4 | 665 | 8.02 | 4.5 | 36.11 | 0.5 | 36.61 | 0.43 | $4,000 | nan | nan | nan\n", "East Bay | 6 | PITTSBURGH 5&6 | 650 | 8.02 | 4.5 | 36.11 | 0.5 | 36.61 | 0.43 | $2,500 | nan | nan | nan\n", "... (32 rows omitted)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ESG_sorted" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 36.5 , 40.5 , 41.94, 41.94, 66.5 , 73.72])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Big_Coal= ESG_sorted.where(\"Group\",\"Big Coal\")\n", "Big_Coal\n", "width_coal = Big_Coal.column(\"Capacity_MW\")\n", "width_coal\n", "height_coal = Big_Coal.column(\"Total_Var_Cost_USDperMWH\")\n", "height_coal" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "\"\"\"\n", "Given widths sorted in ascending order, returns the y_positions used to graph the capacity vs variable costs bar graph\n", "\"\"\"\n", "\n", "def find_y_pos(widths):\n", " cumulative_widths = [0]\n", " cumulative_widths.extend(np.cumsum(widths))\n", " half_widths = [i/2 for i in widths]\n", " y_pos = []\n", " for i in range(0, len(half_widths)):\n", " y_pos.append(half_widths[i] + cumulative_widths[i])\n", " return y_pos\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[950.0, 2050.0, 2375.0, 3025.0, 3575.0, 3775.0]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_y_coal = find_y_pos(width_coal)\n", "new_y_coal" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEXCAYAAABPkyhHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGZ9JREFUeJzt3Xm4JXV95/H3h0VQQdabtgViI+CC\nRlFbI+iogI6oKBgZRXlMR8kQjToqk8fgODEmaqIxLpAYDVGkUZQtKgSDiogycW8WFURkkQ5gQ18R\nBIwb+J0/6nftQ3uX05db5/Tyfj3PeU5tp+p76/Y9n676Vf0qVYUkadO22bgLkCSNn2EgSTIMJEmG\ngSQJw0CShGEgScIw0CYuyQeS/MW461hbkhOTvHXcdWjTYRhoo5bk2iQ/S3JHkluSfDrJblPzq+rl\nVfWWe7D+ZyS5IMntSSaTfCnJcxememl0DANtCp5TVdsAi4GbgH9YiJUmOQw4HTgJ2BVYBLwJeM5C\nrF8aJcNAm4yq+jlwBrD31LS1T8ckeX2SVUl+mOSPk1SSPddeV5IA7wbeUlUfrKqfVNWvq+pLVfU/\n2zKbJfm/SVYmWZ3kpCTbDazj9CQ3JvlJO7p4eJ8/vzQbw0CbjCT3AV4IfG2G+QcBRwNPA/YEnjrL\n6h4C7EYXLjP5o/baH3gQsA3wjwPzzwH2An4HuAg4ec4fQurJFuMuQBqBTyW5E7gvMAk8Y4blXgB8\nuKouA0jyZuCIGZbdqb2vmmW7RwDvrqpr2vreAFya5KVVdWdVnTC1YNvWLUm2q6qfDPdjSQvHIwNt\nCg6tqu2BrYFXAV9Kcv9plnsAcN3A+HXTLDPl5va+eJZlHgCsHBhfSfcfsEVJNk/y9iRXJ7kNuLYt\ns/Ms65N6Yxhok1FVd1XVJ4C7gCdNs8gquobgKbtNs8yUK+jC4vmzLPND4IED478L3EnXiP1i4BC6\nU1LbAUvaMpllfVJvDANtMtI5BNgBuHyaRU4DXprkYa19Ycb7D6rr+/1o4C+SvDTJ/VqD8ZOSHN8W\n+zjwuiS7J9kG+Bvg1Kq6E9gW+AXdEcZ92jxpbAwDbQr+LckdwG3A24BlU+0Cg6rqHOA44HzgKtY0\nNP9iupVW1Rl0DdIvozsKuAl4K3BmW+QE4CPABcAPgJ8Dr27zTqI7bXQD8F1maNSWRiU+3EaaXpKH\nAZcCW7X/zUsbLY8MpAFJnpdkqyQ7AO8A/s0g0KbAMJDu7k+A1cDVdA3NrxhvOdJoeJpIkuSRgSRp\nA7kDeeedd64lS5aMuwxJ2qBceOGFP6qqiWGW3SDCYMmSJaxYsWLcZUjSBiXJyrmX6niaSJJkGEiS\nDANJEoaBJAnDQJKEYSBJwjCQJGEYSJIwDCRJbCB3IEvShmLJMZ9esHVd+/ZnL9i65uKRgSTJMJAk\nGQaSJAwDSRKGgSQJw0CSRI9hkOQhSS4ZeN2W5LVJdkxybpIr2/sOfdUgSRpOb2FQVVdU1T5VtQ/w\nWOC/gE8CxwDnVdVewHltXJI0RqM6TXQgcHVVrQQOAZa36cuBQ0dUgyRpBqMKg8OBj7fhRVW1qg3f\nCCya7gNJjkqyIsmKycnJUdQoSZus3sMgyb2A5wKnrz2vqgqo6T5XVcdX1dKqWjoxMdFzlZK0aRvF\nkcEzgYuq6qY2flOSxQDtffUIapAkzWIUYfAi1pwiAjgLWNaGlwFnjqAGSdIseg2DJPcFng58YmDy\n24GnJ7kSeFoblySNUa9dWFfVT4Gd1pp2M93VRZKk9YR3IEuSDANJkmEgScIwkCThM5AlaVYL+Uzj\n9ZlHBpIkw0CSZBhIkjAMJEkYBpIkDANJEoaBJAnDQJKEYSBJwjCQJGEYSJIwDCRJGAaSJAwDSRI9\nh0GS7ZOckeR7SS5Psm+SHZOcm+TK9r5DnzVIkubW95HBscBnquqhwKOAy4FjgPOqai/gvDYuSRqj\n3sIgyXbAk4EPAVTVL6vqVuAQYHlbbDlwaF81SJKG0+eRwe7AJPDhJBcn+WCS+wKLqmpVW+ZGYNF0\nH05yVJIVSVZMTk72WKYkqc8w2AJ4DPD+qno08FPWOiVUVQXUdB+uquOramlVLZ2YmOixTElSn2Fw\nPXB9VX29jZ9BFw43JVkM0N5X91iDJGkIvYVBVd0IXJfkIW3SgcB3gbOAZW3aMuDMvmqQJA1ni57X\n/2rg5CT3Aq4BXkoXQKclORJYCbyg5xokSXPoNQyq6hJg6TSzDuxzu5KkdeMdyJIkw0CSZBhIkjAM\nJEkYBpIkDANJEoaBJAnDQJKEYSBJwjCQJGEYSJIwDCRJGAaSJAwDSRKGgSQJw0CShGEgScIwkCRh\nGEiS6PkZyEmuBW4H7gLurKqlSXYETgWWANcCL6iqW/qsQ5I0u1EcGexfVftU1dI2fgxwXlXtBZzX\nxiVJYzSO00SHAMvb8HLg0DHUIEkaMGcYJHniMNNmUMDnklyY5Kg2bVFVrWrDNwKLZtjuUUlWJFkx\nOTk55OYkSfMxzJHBPww5bTpPqqrHAM8EXpnkyYMzq6roAuO3VNXxVbW0qpZOTEwMuTlJ0nzM2ICc\nZF9gP2AiydEDs+4HbD7Myqvqhva+OskngccDNyVZXFWrkiwGVs+7eknSgpjtyOBewDZ0gbHtwOs2\n4LC5Vpzkvkm2nRoG/jtwKXAWsKwttgw4c77FS5IWxoxHBlX1JeBLSU6sqpUASTYDtqmq24ZY9yLg\nk0mmtvOxqvpMkm8CpyU5ElgJvOCe/hCSpHtmmPsM/jbJy+nuFfgmcL8kx1bVO2f7UFVdAzxqmuk3\nAwfOp1hJUj+GaUDeux0JHAqcA+wOvKTXqiRJIzVMGGyZZEu6MDirqn7FDFcASZI2TMOEwT/TdRtx\nX+CCJA+ka0SWJG0k5mwzqKrjgOMGJq1Msn9/JUmSRm2YO5C3S/LuqbuBk7yL7ihBkrSRGOY00Ql0\nPY++oL1uAz7cZ1GSpNEa5tLSParq+QPjf5Xkkr4KkiSN3jBHBj9L8qSpkdZJ3c/6K0mSNGrDHBm8\nHDgpyXZt/Bbgj3qrSJI0csNcTfQt4FFJ7tfGvaxUkjYyM54mSnJ06z8I6EKgqm5LcmSS146mPEnS\nKMzWZnAEcNI00z8CvKyfciRJ4zBbGGzRup64m6r6JZD+SpIkjdpsYbBZkt96JOV00yRJG7bZwuCd\nwKeTPCXJtu31VOBs4O9HUp0kaSRme7jNSUkmgb8GHkHXU+llwJuq6pwR1SdJGoFZLy1tX/p+8UvS\nRm6Ym84kjciSYz497hK0iRqmOwpJ0kau9zBIsnmSi5Oc3cZ3T/L1JFclOTXJvfquQZI0u2GeZ7Ao\nyYeSnNPG9x68M3kIrwEuHxh/B/CeqtqTrp+jdVmXJKkHw7QZnEj3/II3tvHvA6cCH5rrg0l2BZ4N\nvA04OkmAA4AXt0WWA28G3r8uRUvj4jl9bayGOU20c1WdBvwaoKruBO4acv3vBV4/9VlgJ+DWtg6A\n64Fdhi9XktSHYcLgp0l2orvPgCRPAH4y14eSHAysrqoL51NYkqOmHrU5OTk5n1VIkoY0zGmio4Gz\ngD2SfBmYAA4b4nNPBJ6b5FnA1sD9gGOB7ZNs0Y4OdgVumO7DVXU8cDzA0qVLa4jtSZLmac4jg6q6\nCHgKsB/wJ8DDq+rbQ3zuDVW1a1UtAQ4HvlBVRwDnsyZMlgFnzrN2SdICmfHIIMkfzDDrwUmoqk/M\nc5t/DpyS5K3AxQzREC1J6tdsp4meM8u8AoYOg6r6IvDFNnwN8PhhPytJ6t9sHdW9dJSFSJLGZ5ib\nznZKclySi5JcmOTYdnWRJGkjMcylpacAk8Dz6Rp+J+luOpMkbSSGubR0cVW9ZWD8rUle2FdBkqTR\nGyYMPpfkcOC0Nn4Y8Nn+SlpYdh8gSXOb7dLS2+muGgrwWuCjbdZmwB3An/VenSRpJGa7mmjbURYi\nSRqfoZ50lmQHYC+6biUAqKoL+ipKkjRac4ZBkj+meybBrsAlwBOAr9J1RS1J2ggMc2npa4DHASur\nan/g0cCtvVYlSRqpYcLg51X1c4AkW1XV94CH9FuWJGmUhmkzuD7J9sCngHOT3AKs7LcsSdIozRkG\nVfW8NvjmJOcD2wGf6bUqSdJIzXafwf2q6rYkOw5M/k573wb4ca+VSZJGZrYjg48BBwMXsubms8H3\nB/VenSRpJGa76ezgJAGeUlX/OcKaJEkjNuvVRFVVgJ37SNJGbphLSy9K8rjeK5Ekjc0wl5b+PnBE\nkpXAT2ltBlX1yF4rkySNzDBh8Iz5rDjJ1sAFwFZtO2dU1V8m2Z3ugTk70TVOv6SqfjmfbUiSFsac\np4mqamVVrQR+RncV0dRrLr8ADqiqRwH7AAcleQLwDuA9VbUncAtw5HyLlyQtjGGegfzcJFcCPwC+\nBFwLnDPX56pzRxvdsr2KroO7M9r05cCh6162JGkhDdOA/Ba6nkq/X1W7AwcCXxtm5Uk2T3IJsBo4\nF7gauLWq7myLXA/sss5VS5IW1DBh8KuquhnYLMlmVXU+sHSYlVfVXVW1D133148HHjpsYUmOSrIi\nyYrJyclhPyZJmodhwuDWJNvQNQafnORYuquKhlZVtwLnA/sC2yeZarjeFbhhhs8cX1VLq2rpxMTE\numxOkrSOhgmDQ+gaj19H10Hd1cBz5vpQkonW2ylJ7g08HbicLhQOa4stA85c97IlSQtpto7q3gd8\nrKq+PDB5+TqsezGwPMnmdKFzWlWdneS7wClJ3gpcDHxoHnVLkhbQbPcZfB/4+ySLgdOAj1fVxcOu\nuKq+TfdUtLWnX0PXfiBJWk/MeJqoqo6tqn2BpwA3Ayck+V6Sv0zy4JFVKEnq3bA3nb2jqh4NvIju\nvoDLe69MkjQyw9x0tkWS5yQ5me5msyuAP+i9MknSyMzWgPx0uiOBZwHfoOtP6KiqWqfLSiVJ67/Z\nGpDfQPe0s/9dVbeMqB5J0hjM9qSzA0ZZiCRpfIa56UyStJEzDCRJhoEkyTCQJGEYSJIwDCRJGAaS\nJAwDSRKGgSQJw0CShGEgScIwkCRhGEiS6DEMkuyW5Pwk301yWZLXtOk7Jjk3yZXtfYe+apAkDafP\nI4M76Z6FsDfwBOCVSfYGjgHOq6q9gPPauCRpjHoLg6paVVUXteHb6Z6bvAtwCLC8Lbac7pnKkqQx\nGkmbQZIlwKOBrwOLqmpVm3UjsGgUNUiSZtZ7GCTZBvhX4LVVddvgvKoqoGb43FFJViRZMTk52XeZ\nkrRJ6zUMkmxJFwQnV9Un2uSbkixu8xcDq6f7bFUdX1VLq2rpxMREn2VK0iavz6uJAnwIuLyq3j0w\n6yxgWRteBpzZVw2SpOFs0eO6nwi8BPhOkkvatP8DvB04LcmRwErgBT3WIEkaQm9hUFX/AWSG2Qf2\ntV1J0rrzDmRJkmEgSTIMJEkYBpIkDANJEoaBJAnDQJKEYSBJwjCQJGEYSJIwDCRJGAaSJAwDSRKG\ngSQJw0CShGEgScIwkCRhGEiSMAwkSRgGkiR6DIMkJyRZneTSgWk7Jjk3yZXtfYe+ti9JGl6fRwYn\nAgetNe0Y4Lyq2gs4r41LksastzCoqguAH681+RBgeRteDhza1/YlScMbdZvBoqpa1YZvBBbNtGCS\no5KsSLJicnJyNNVJ0iZqbA3IVVVAzTL/+KpaWlVLJyYmRliZJG16Rh0GNyVZDNDeV494+5KkaYw6\nDM4ClrXhZcCZI96+JGkafV5a+nHgq8BDklyf5Ejg7cDTk1wJPK2NS5LGbIu+VlxVL5ph1oF9bVOS\nND/egSxJMgwkSYaBJAnDQJKEYSBJwjCQJGEYSJIwDCRJGAaSJAwDSRKGgSQJw0CShGEgScIwkCRh\nGEiSMAwkSRgGkiQMA0kShoEkiTGFQZKDklyR5Kokx4yjBknSGiMPgySbA+8DngnsDbwoyd6jrkOS\ntMY4jgweD1xVVddU1S+BU4BDxlCHJKnZYgzb3AW4bmD8euD3114oyVHAUW30jiRXzHN7OwM/mudn\n+2Zt82Nt82Nt8zO22vKOOReZq7YHDrutcYTBUKrqeOD4e7qeJCuqaukClLTgrG1+rG1+rG1+NpXa\nxnGa6AZgt4HxXds0SdKYjCMMvgnslWT3JPcCDgfOGkMdkqRm5KeJqurOJK8CPgtsDpxQVZf1uMl7\nfKqpR9Y2P9Y2P9Y2P5tEbamqhVqXJGkD5R3IkiTDQJK0kYfBuLu9SHJtku8kuSTJijZtxyTnJrmy\nve/QpifJca3Wbyd5TA/1nJBkdZJLB6atcz1JlrXlr0yyrMfa3pzkhrb/LknyrIF5b2i1XZHkGQPT\nF/R3nmS3JOcn+W6Sy5K8pk0f+36bpbb1Yb9tneQbSb7VavurNn33JF9v2zm1XURCkq3a+FVt/pK5\nau6hthOT/GBgv+3Tpo/0b6Gtd/MkFyc5u433v9+qaqN80TVOXw08CLgX8C1g7xHXcC2w81rT/g44\npg0fA7yjDT8LOAcI8ATg6z3U82TgMcCl860H2BG4pr3v0IZ36Km2NwN/Ns2ye7ff51bA7u33vHkf\nv3NgMfCYNrwt8P22/bHvt1lqWx/2W4Bt2vCWwNfb/jgNOLxN/wDwijb8p8AH2vDhwKmz1dxTbScC\nh02z/Ej/Ftq6jwY+BpzdxnvfbxvzkcH62u3FIcDyNrwcOHRg+knV+RqwfZLFC7nhqroA+PE9rOcZ\nwLlV9eOqugU4Fziop9pmcghwSlX9oqp+AFxF9/te8N95Va2qqova8O3A5XR30Y99v81S20xGud+q\nqu5oo1u2VwEHAGe06Wvvt6n9eQZwYJLMUnMftc1kpH8LSXYFng18sI2HEey3jTkMpuv2YrY/lD4U\n8LkkF6brXgNgUVWtasM3Aova8LjqXdd6Rl3nq9qh+QlTp2LGVVs7BH803f8k16v9tlZtsB7st3aq\n4xJgNd0X5dXArVV15zTb+U0Nbf5PgJ1GVVtVTe23t7X99p4kW61d21o19PU7fS/weuDXbXwnRrDf\nNuYwWB88qaoeQ9dD6yuTPHlwZnXHc+vNtb3rWz3A+4E9gH2AVcC7xlVIkm2AfwVeW1W3Dc4b936b\nprb1Yr9V1V1VtQ9dLwOPBx46jjqms3ZtSR4BvIGuxsfRnfr581HXleRgYHVVXTjqbW/MYTD2bi+q\n6ob2vhr4JN0fxE1Tp3/a++q2+LjqXdd6RlZnVd3U/mh/DfwLaw5zR1pbki3pvmxPrqpPtMnrxX6b\nrrb1Zb9NqapbgfOBfelOsUzd7Dq4nd/U0OZvB9w8wtoOaqfdqqp+AXyY8ey3JwLPTXIt3em6A4Bj\nGcV+W4jGjvXxRXd39TV0jSdTjWIPH+H27wtsOzD8Fbrzie/k7g2Pf9eGn83dG6m+0VNdS7h7I+06\n1UP3P6Yf0DWY7dCGd+yptsUDw6+jOwcK8HDu3jh2DV0j6IL/ztvPfxLw3rWmj32/zVLb+rDfJoDt\n2/C9gf8HHAyczt0bQv+0Db+SuzeEnjZbzT3Vtnhgv74XePu4/hba+p/Kmgbk3vfbgn/ZrE8vuqsA\nvk93rvKNI972g9ov41vAZVPbpzufdx5wJfD5qX887R/a+1qt3wGW9lDTx+lOG/yK7hzikfOpB3gZ\nXYPUVcBLe6ztI23b36brv2rwS+6NrbYrgGf29TsHnkR3CujbwCXt9az1Yb/NUtv6sN8eCVzcargU\neNPA38U32j44HdiqTd+6jV/V5j9orpp7qO0Lbb9dCnyUNVccjfRvYWDdT2VNGPS+3+yOQpK0UbcZ\nSJKGZBhIkgwDSZJhIEnCMJAkYRhIkjAMtIFLcv8kpyS5uvUB9e9JHtzzNh+Q5Iw2vM9gF9HruJ43\nJ6kkew5Me22btjTJa5K8d2DePyf5/MD4q5Mcd09+FmmKYaANVuud8ZPAF6tqj6p6LF3/Motm/+Q9\nU1U/rKrD2ug+dDdszdd36O4cnfI/6G5SBPgysN/AvEcB2yXZvI3vR3dnu3SPGQbakO0P/KqqPjA1\noaq+BVyc5LwkF6V7uNAh0PXsmeR7SU5OcnmSM5Lcp817U5JvJrk0yfEtaEiyZ5LPtwehXJRkj7ae\nS9sDRv4aeGF7GMoL20NOJtpnN2sPF5mY5Wf4FK276CR70PU6+aM27xLgwUnunWQ74Gdt2u+1+fvR\nBYZ0jxkG2pA9Apiud8efA8+rrsfY/YF3TX25Aw8B/qmqHgbcRvdwEIB/rKrHVdUj6PqrObhNPxl4\nX1U9iu7Ld6rbaqrr+/9NdA8U2aeqTqXrxuCItsjTgG9V1eQsP8NtwHWt18zDgVMH1n8nXbcJj6M9\nVAX4GrBfkl2AVNV1v71Kad0ZBtoYBfibJN+m6zdoF9acOrquqqb+N/1Ruv59APZvjw38Dl1PkQ9P\nsi2wS1V9EqCqfl5V/zXHtk8A/rANv4yu98u5nEIXBIfSnfYa9BW6ENoP+Gp7TY17ikgLxjDQhuwy\n4LHTTD+CrmfKx1bXZ/1NdB16wW8/d6CSbA38E90jD3+PrtvnrZmH9j/1m5IcQNcF8jlDfOxs4CXA\nf9Zaz0pgTbvBvnRBcDndIw0NAy0ow0Absi8AWw08RY4kjwQeSPeAkF8l2b+NT/ndJPu24RcD/8Ga\nL/4ftQfFHAa/eZTk9UkObeveaqqNYcDtdM8fHvRBuqOO06vqrrl+iHa08efA26aZ/VW6U0QTVbW6\nup4lJ+naGWwv0IIxDLTBal+MzwOe1i4tvQz4W+DfgaXtlM8fAt8b+NgVdE+du5yuD/r3V/eAk3+h\n67r4s8A3B5Z/CfC/2imnrwD3X6uM84G9pxqQ27SzgG0Y7hTR1M9ySrXnGa81/Ra6L//LBiZ/Ffgd\nuu7RpQVhF9baZLTnBJ/dGon73M5S4D1V9d/63I60kLaYexFJw0pyDPAK1lxRJG0QPDKQepbkjXQ3\nkw06vaqmayOQxsIwkCTZgCxJMgwkSRgGkiQMA0kS8P8BzxcZg4DykE8AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "plt.bar(new_y_coal, height_coal, width=width_coal)\n", "#plt.xticks(y_pos, bars)\n", "# Add title and axis names\n", "plt.title('Big Coal')\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Variable Cost')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0.5 , 11.5 , 32.56, 32.56, 34.5 , 34.5 , 36.5 ,\n", " 36.61, 36.61, 38.06, 38.06, 38.78, 39.06, 39.5 , 40.5 ,\n", " 40.94, 41.22, 41.67, 41.94, 41.94, 42.39, 42.67, 43.83,\n", " 44.83, 47.44, 49.17, 49.61, 52.06, 52.5 , 53.94, 58.28,\n", " 59.72, 61.17, 62.89, 65.5 , 66.5 , 69.83, 73.72, 75.61,\n", " 75.89, 90.06])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "width = ESG_sorted.column(\"Capacity_MW\")\n", "width\n", "height = ESG_sorted.column(\"Total_Var_Cost_USDperMWH\")\n", "height" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[500.0,\n", " 1400.0,\n", " 2300.0,\n", " 3175.0,\n", " 3925.0,\n", " 4675.0,\n", " 5425.0,\n", " 6750.0,\n", " 8032.5,\n", " 8690.0,\n", " 9365.0,\n", " 10065.0,\n", " 10582.5,\n", " 10900.0,\n", " 11400.0,\n", " 11900.0,\n", " 12375.0,\n", " 13025.0,\n", " 13825.0,\n", " 14475.0,\n", " 15125.0,\n", " 15925.0,\n", " 16675.0,\n", " 17450.0,\n", " 18000.0,\n", " 18275.0,\n", " 18425.0,\n", " 18575.0,\n", " 18725.0,\n", " 19075.0,\n", " 19400.0,\n", " 19525.0,\n", " 19950.0,\n", " 20375.0,\n", " 20525.0,\n", " 20675.0,\n", " 20825.0,\n", " 20975.0,\n", " 21175.0,\n", " 21450.0,\n", " 21725.0,\n", " 21950.0]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_y = find_y_pos(width)\n", "new_y" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEXCAYAAACgUUN5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGa9JREFUeJzt3XmYJXV97/H3B0YWRRZhRPZBxIWL\n4jIoLoniigQFI0GUIC55SEzcNQrqo1w15prrAlxXIigosogbVySKBOW6gA4IsgmyjYAIg7K5RcDv\n/aN+LSc9Pd1nZvp0T3e9X89znjnnV9uvak7X59Svqn6VqkKS1F9rzXYFJEmzyyCQpJ4zCCSp5wwC\nSeo5g0CSes4gkKSeMwg065J8Jsl72/unJbl+tusk9YlBoBmT5NtJbk2y7mrMo5L8NslvBl5vmc56\njkKSpyT5fpLbk/w6yfeS7Drb9ZIAFsx2BdQPSRYBfwHcDjwf+MJqzG6XqrpyGqq1QkkWVNXd0zSv\nDYGvAa8CTgbWodsW/zUd8x+3rGmrt/rDIwLNlJcC5wCfAQ4axQKSHJbk5CTHJbkzySVJFg8M3zLJ\nF5MsS3JNkteOm/aUJJ9LcgfwsiTrJzm2HcVcluQtY81WSf45yRfHLf/IJEdMULWHAlTVCVV1T1X9\nvqq+WVU/adOtleQdSZYmubnVf6M2bLmmsiTXJnnmJPVeO8nbklzVtsN5SbZp4z88yRntqOTyJPsN\nzHfPJJe2aW5I8ubV+g/RnGEQaKa8FDi+vZ6TZPMRLef5wInAxsCpwEeg29kC/xe4ENgKeAbw+iTP\nGZh2b+CUNu3xwLuARcCDgWcBfzsw7ueAPZJs3Oa/ANgfOG6COl0B3NNC5blJNhk3/GXttXtb1gZj\n9R7S+Hq/EXgxsCewIfAK4HdJ7gecAXweeGCr78eS7NTmczTw91V1f2Bn4D9Xog6awwwCjVySpwDb\nASdX1XnAVcBLVmOW5ye5beA1uDP/blV9varuAT4L7NLKdwUWVtW7q+qPVXU18O90O8MxP6iqr1TV\nn6rq98B+wPuq6taquh44cmzEqroROBv4m1a0B3BLW7//pqruAJ4CVFvmsiSnDoThAcCHqurqqvoN\ncCiwfwuXYYyv998B76iqy6tzYVX9CtgLuLaqPl1Vd1fVj4EvDqzDXcBOSTZs63z+kMvXHGcQaCYc\n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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "plt.bar(new_y, height, width=width)\n", "#plt.xticks(y_pos, bars)\n", "# Add title and axis names\n", "plt.title('All Energy Sources')\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Variable Cost')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Trying to figure out how to make a legend for this and perhaps better colors, but this segments the graph by energy source" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "energy_colors_dict = {}\n", "count = 0\n", "colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n", "for i in set(ESG_sorted['Group']):\n", " energy_colors_dict[i] = colors[count]\n", " count += 1" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [], "source": [ "colors_mapped = list(pd.Series(ESG_sorted['Group']).map(energy_colors_dict))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ESG_sorted = ESG_sorted.with_column('Color', colors_mapped)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ny9z/BxCuiURB3IUdAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "plt.bar(new_y, height, width=width, color=ESG_sorted['Color'])\n", "#plt.xticks(y_pos, bars)\n", "# Add title and axis names\n", "plt.title('All Energy Sources')\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Variable Cost')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#set capacity here\n", "capacity = 20000" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": true }, "outputs": [], "source": [ "price = 0" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def price_calc(capacity, sorted_table):\n", " sum_cap = 0\n", " for i in range(0,len(sorted_table['Capacity_MW'])):\n", " if sum_cap + sorted_table['Capacity_MW'][i] > capacity:\n", " global price\n", " price = sorted_table['Total_Var_Cost_USDperMWH'][i]\n", " break\n", " else:\n", " sum_cap += sorted_table['Capacity_MW'][i]" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def price_line_plot():\n", " global price\n", " plt.axhline(y=price, color='r', linewidth = 2)\n", " print(\"Price: \" + str(price))" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def capacity_plot():\n", " global capacity\n", " plt.axvline(x=capacity, color='r', linewidth = 2)\n", " print(\"Capacity: \" + str(capacity))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*With Lines for price and quantity" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Price: 59.72\n", "Capacity: 20000\n" ] }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "plt.bar(new_y, height, width=width, color=ESG_sorted['Color'])\n", "#plt.xticks(y_pos, bars)\n", "# Add title and axis names\n", "plt.title('All Energy Sources')\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Variable Cost')\n", "price_calc(capacity,ESG_sorted)\n", "price_line_plot()\n", "capacity_plot()\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Price: 59.72\n" ] }, { "data": { "image/png": "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\nw0CSBPx/BWYgBvqrdPMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the plot\n", "plt.bar(new_y_coal, height_coal, width=width_coal)\n", "#plt.xticks(y_pos, bars)\n", "# Add title and axis names\n", "plt.title('Big Coal')\n", "plt.xlabel('Capacity_MW')\n", "plt.ylabel('Variable Cost')\n", "price_line_plot()\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "160.88" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sum(Big_Coal.where(\"Total_Var_Cost_USDperMWH\", are.below(price))[\"Total_Var_Cost_USDperMWH\"])" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def profit(sorted_table):\n", " global price\n", " global capacity\n", " capacity_subset = sum(sorted_table.where(\"Total_Var_Cost_USDperMWH\", are.below(price))[\"Capacity_MW\"])\n", " revenue = capacity_subset * price\n", " cost = sum(sorted_table.where(\"Total_Var_Cost_USDperMWH\", are.below(price))[\"Total_Var_Cost_USDperMWH\"])\n", " return revenue - cost" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "208859.12" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "profit(Big_Coal)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.4" } }, "nbformat": 4, "nbformat_minor": 2 }