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]:
rain(mm) temp(dC)
loc month
Adria_-_Bellombra 1 41.314286 2.933333
2 41.552381 4.280952
3 49.152381 8.733333
4 60.342857 13.038095
5 67.590476 18.185714

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()


['Adria_-_Bellombra' 'Agna' 'Agordo']
[ 1  2  3  4  5  6  7  8  9 10 11 12]
12

In [ ]: