2016-02-03 2 views
0

Я хочу построить 3 подзаголовка, с первым участком в виде бара. Когда я делаю это, ось x перемещается влево. И я получаю очень странно выглядящий баркар, см. Рисунок ниже. Если я изменяю '' bar '' на '' plot '', это отлично работает, но график - это строка вместо баров.изготовление подзаговоров, включая барчарт

enter image description here

kwargs=dict(delimiter='\t',\ 
     skip_header=0,\ 
     missing_values='NaN',\ 
     converters={0:matplotlib.dates.strpdate2num('%d-%m-%Y %H:%M')},\ 
     dtype = float,\ 
     names=True,\ 
     ) 

storm_dis_cats = np.genfromtxt('C:\Users\ker\Documents\Discharge_data_Catsop_27-06-2014.txt',**kwargs) 

kwargs=dict(delimiter='\t',\ 
     skip_header=0,\ 
     missing_values='NaN',\ 
     converters={0:matplotlib.dates.strpdate2num('%d-%m-%Y %H:%M')},\ 
     dtype = float,\ 
     names=True,\ 
     ) 

storm_stage_cats = np.genfromtxt('C:\Users\ker\Documents\Stageheight_data_Catsop_27-06-2014.txt',**kwargs) 

kwargs=dict(delimiter='\t',\ 
     skip_header=0,\ 
     missing_values='NaN',\ 
     converters={0:matplotlib.dates.strpdate2num('%d-%m-%Y %H:%M')},\ 
     dtype = float,\ 
     names=True,\ 
     ) 

storm_rain_cats = np.genfromtxt('C:\Users\ker\Documents\Rainfall_data_Catsop_27-06-2014.txt',**kwargs) 

discharge = storm_dis_cats['discharge'] 
date = storm_stage_cats['date'] 
stage = storm_stage_cats['stage'] - 79.331 
date_stage = storm_stage_cats['date'] 
rainfall = storm_rain_cats['rainfall'] 
date_rainfall = storm_rain_cats['date'] 

#set locator and formatter 

hours = matplotlib.dates.HourLocator() # every year 
months = matplotlib.dates.MonthLocator() # every month 
hoursFmt = matplotlib.dates.DateFormatter('%H') 

#create plot 

fig=matplotlib.pyplot.figure() 
ax=fig.add_subplot(311) 
ax.bar(date_rainfall,rainfall,color='blue',label='Precipitation') 
ax.xaxis.set_major_locator(hours) 
ax.xaxis.set_major_formatter(hoursFmt) 
matplotlib.pyplot.ylabel('Precipitation[mm]') 
matplotlib.pyplot.grid(True) 
matplotlib.pyplot.legend() 

ax=fig.add_subplot(312) 
ax.plot(date,discharge,color='red',label='discharge') 
ax.xaxis.set_major_locator(hours) 
ax.xaxis.set_major_formatter(hoursFmt) 
matplotlib.pyplot.ylabel('discharge[m3/s]') 
matplotlib.pyplot.grid(True) 
matplotlib.pyplot.legend() 

ax=fig.add_subplot(313) 
ax.plot(date_stage,stage,color='green',label='stageheight') 
ax.xaxis.set_major_locator(hours) 
ax.xaxis.set_major_formatter(hoursFmt) 
matplotlib.pyplot.ylabel('stageheight[m]') 
matplotlib.pyplot.grid(True) 
matplotlib.pyplot.legend() 
matplotlib.pyplot.xlabel('Hours') 

fig=matplotlib.pyplot.figure(1) 
fig.autofmt_xdate() #rotates dates in xaxis 

ответ

0

Я думаю, что вам нужно, это общая XAxis Там вы должны добавить подзаговоры другим способом. Обычно я делаю то же, что и subplots_demo.py, которое вы можете найти здесь: http://matplotlib.org/examples/pylab_examples/subplots_demo.html

+0

Это не сработало для меня. –

Смежные вопросы