In [1]:
%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
In [2]:
data=pd.read_csv("05_temp_rain_v2.csv")
#data.columns
#data
In [3]:
pivot=data.pivot_table(["rain(mm)","temp(dC)"], ["loc","month"])
pivot.head()
Out[3]:
In [299]:
locations=pivot.index.get_level_values(0).unique()
print(locations)
months=pivot.index.get_level_values(1).unique()
print(months)
print(len(months))
sns.set_style("ticks")
for location in locations:
#print(pivot.xs(location, level=0))
split=pivot.xs(location).reset_index()
rain=split["rain(mm)"]
temp=split["temp(dC)"]
#print(rain)
fig = plt.figure()
#ax = fig.add_subplot(111)
#ax2 = ax1.twinx()
#temp.plot(color='red', ax=ax)
#rain.plot(color='blue', ax=ax2)
#ax1.set_yticks(np.linspace(ax1.get_ybound()[0], ax1.get_ybound()[1], 5))
#ax2.set_yticks(np.linspace(ax2.get_ybound()[0], ax2.get_ybound()[1], 5))
#lim2 = (lim[1]*10, lim[1]*10)
ax1 = temp.plot(color="r")
ax2 = ax1.twinx()
ax2 = rain.plot()
#lim = ax.get_ylim()
#lim2 = (lim[1]*2)
#ax2.set_ylim(lim2)
#plt.ylim(0)
#ax2.autoscale()
ax1.set_ylim(-20,rain.max())
ax2.set_ylim(-20,rain.max())
#plt.gca().set_aspect('auto')
plt.axhline(0, color='black')
ax1.set_yticks([-20,0,20,40],)
ax2.set_yticks(range(0,int(rain.max()),20))
#plt.xlim(0,11)
#plt.ylim(temp.min()*0.9, rain.max()*1.1)
ax2.set_ylabel('Precipitation (mm)', color='blue')
ax1.set_ylabel('Temperature (°C)', color='red')
ax1.set_xlabel('Months')
ax1.spines['bottom'].set_position(("data",0))
#ax1.autoscale
#x = np.arange(12)
xpositive=(temp)>=0
y = np.maximum(temp,rain)
plt.fill_between(x,temp,y,rain, hatch="|", alpha="0.3",edgecolor="b")
plt.title(location)
plt.tight_layout()
#plt.axis([min(rain), max(rain), min(temp), max(temp)])
labels = ['Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dez']
plt.xticks(range(12),labels,rotation=45)
ax1.set_xticklabels(labels, rotation=45)
sns.despine(top=True,right=False, bottom=True)
#plt.savefig(location+'.svg')
#-------unused----------
#plt.autoscale()
In [ ]: