2016-12-31 10 views
0

私は次のコードを使用して2つのサブプロットでフィギュアを作成しています。ここで得られた数値のpythonは、Axesプロパティを

fig, (ax1, ax2) = plt.subplots(2, sharex = True, figsize=(20, 6)) 

mpf.candlestick_ohlc(ax1,quotes, width=0.01) 
ax1.xaxis_date() 
ax1.xaxis.set_major_locator(mpl.dates.DayLocator(interval=1)) 
ax1.xaxis.set_major_formatter(mpl.dates.DateFormatter('%a, %b %d \'%y')) 
ax1.xaxis.set_minor_locator(mpl.dates.HourLocator(byhour=range(0,24,4))) 
ax1.xaxis.set_minor_formatter(mpl.dates.DateFormatter('%-H')) 
ax1.grid(True) 
ax1.grid(b=True, which='minor', color='0.7', linestyle='dotted') 
ax2.tick_params(direction='out', pad=15) 

majors=ax1.xaxis.get_majorticklocs() 
chart_start, chart_end = (ax1.xaxis.get_view_interval()[0],ax1.xaxis.get_view_interval()[1]) 
for major in majors: 
    ax1.axvspan(max (chart_start, major-(0.3333)),min(chart_end, major+(0.3333)),color="0.95", zorder=-1) 

plt.bar(quotes[:,0] , quotes[:, 5], width = 0.01) 

plt.show() 

を:私はサブプロットをしたいと思い

enter image description here

を同じグリッド、メジャー/マイナーダニとaxvspanを下のサブプロットとして持つことができます。私はすべてのax1 ...行をのax1を変更して書き直すことができましたが、私は1つの両方の軸に異なる要素(すなわち、グリッド、マイナー/メジャーティックとaxvspan)を割り当てる方法があると思われる?

答えて

0

okがそれを見つけた:

fig, (axes) = plt.subplots(2, sharex = True, figsize=(20, 6)) 

mpf.candlestick_ohlc(axes[0],quotes, width=0.01) 
plt.bar(quotes[:,0] , quotes[:, 5], width = 0.01) 

for i , axes[i] in enumerate(axes): 
    axes[i].xaxis_date(tz="Europe/Berlin") 
    axes[i].xaxis.set_major_locator(mpl.dates.DayLocator(interval=1)) 
    axes[i].xaxis.set_major_formatter(mpl.dates.DateFormatter('%a, %b %d \'%y')) 
    axes[i].xaxis.set_minor_locator(mpl.dates.HourLocator(byhour=range(0,24,4))) 
    axes[i].xaxis.set_minor_formatter(mpl.dates.DateFormatter('%-H')) 
    axes[i].tick_params(direction='out', pad=15) 
    axes[i].grid(True) 
    axes[i].grid(b=True, which='minor', color='0.7', linestyle='dotted') 

    majors=axes[i].xaxis.get_majorticklocs() 
    chart_start, chart_end = (axes[i].xaxis.get_view_interval()[0], axes[i].xaxis.get_view_interval()[1]) 
    for major in majors: 
     axes[i].axvspan(max (chart_start, major-(0.3333)),min(chart_end, major+(0.3333)),color="0.95", zorder=-1) 

plt.show() 
関連する問題