In the chart that we are going to make, we will show the prices of the domestic electricity among the countries monitored by IEA in 2013 with a bar chart where each bar shows the electricity price and the fraction of the price represented by the taxes.
First, we import the data (the full data is available here, in this post we'll use only the Table 5.5.1 in cvs format) using pandas:
import pandas as pd ieaprices = pd.read_csv('iea_prices.csv', na_values=('..','+','-','+/-')) ieaprices = ieaprices.dropna() ieaprices.set_index(['Country'],inplace=True) countries = ieaprices.sort('2013_with_tax').indexThen, we arrange the data in order create a plotly bar chart:
from plotly.graph_objs import Bar,Data,Layout,Figure from plotly.graph_objs import XAxis,YAxis,Marker,Scatter,Legend prices_bars = [] # computing the taxes taxes = ieaprices['2013_with_tax']-ieaprices['2013_no_tax'] # adding the prices to the chart prices_bars.append(Bar(x=countries.values, y=ieaprices['2013_no_tax'].ix[countries].values, marker=Marker(color='#0074D9'), name='price without taxes')) # adding the taxes to the chart prices_bars.append(Bar(x=countries.values, y=taxes.ix[countries].values, marker=Marker(color='#0099D9'),name='taxes'))And now we are ready to submit the data to the plotly server to render the chart:
import plotly.plotly as py py.sign_in("SexyUser", "asexykeyforasexyuser") meadian_line = Scatter( x=countries.values, y=np.ones(len(countries))*ieaprices['2013_with_tax'].median(), marker=Marker(color='rgb(40, 40, 40)'), opacity=0.5, mode='lines', name='Median') data = Data(prices_bars+[meadian_line]) layout = Layout( title='Domestic electricity prices in the IEA in 2013', xaxis=XAxis(type='category'), yaxis=YAxis(title='Price (Pence per Kwh)'), legend=Legend(x=0.0,y=1.0), barmode='stack', hovermode='closest') fig = Figure(data=data, layout=layout) # this line will work only in ipython # use py.plot() in other environments plot_url = py.iplot(fig, filename='ieaprices2013')The result should look like this:
Looking at the chart we note that, during 2013, the average domestic electricity prices, including taxes, in Denmark and Germany were the highest in the IEA. We also note that in Denmark the fraction of taxes paid is higher than the actual electricity price whereas in Germany the actual electricity price and the taxes are almost the same. Interestingly, USA has the lowest price and the lowest taxation.
This post shows how to create one of the charts commented here, where a more insights about the IEA data are provided.
I had trouble doing the import from csv. Could you please elaborate on how you mangled the data, i.e., a step by step guide.
ReplyDeleteHi Christopher, here's the csv file I exported from the original spreadsheet:
Deletehttps://dl.dropboxusercontent.com/u/55943018/iea_prices.csv