multiple_yaxis_with_spines.py (matplotlib ページhttp://matplotlib.org/で提供されている例) に基づく python ルーチンがありますが、これはバージョン 1.1.1 を超えて matplotlib をアップグレードした後は正しく動作しません (オリジナルでもバグがあります)。3 番目の斧 (赤) は表示されなくなり、対応するデータは青い斧 (左) に続いてプロットされます [下の画像とコードを参照]。現在、Python 2.7.3 32 ビット、matplotlib 1.1.1 を使用して Windows 7 で作業しています > 私の質問は、この関数に影響を与えた matplotlib ライブラリの変更点は何ですか? この問題を解決し、Python とライブラリを問題なくアップグレードできるようにするにはどうすればよいですか? http://tinypic.com/r/33pfz13/5 - データの表示方法
def make_patch_spines_invisible(ax):
par2.set_frame_on(True)
par2.patch.set_visible(False)
for sp in par2.spines.itervalues():
sp.set_visible(False)
def make_spine_invisible(ax, direction):
if direction in ["right", "left"]:
ax.yaxis.set_ticks_position(direction)
ax.yaxis.set_label_position(direction)
elif direction in ["top", "bottom"]:
ax.xaxis.set_ticks_position(direction)
ax.xaxis.set_label_position(direction)
else:
raise ValueError("Unknown Direction : %s" % (direction,))
ax.spines[direction].set_visible(True)
if 1:
fig = plt.figure()
host = fig.add_subplot(111)
par1 = host.twinx()
par2 = host.twinx()
par2.spines["right"].set_position(("axes", 1.1))
make_patch_spines_invisible(par2)
make_spine_invisible(par2, "right")
plt.subplots_adjust(right=0.8)
p1, = host.plot(t,hmf2i,'b-',label="hmf2")
p2, = par1.plot(t,fof2i,"r-",label="foF2")
p3, = par2.plot(t,hvirfi,'g-',label="h\'F")
host.set_xlim(0,24)
#host.set_ylim(250,600)
#par1.set_ylim(9,18)
#par2.set_ylim(200,450)
host.set_xlabel("Hora (UT)")
#host.set_ylabel("hmF2 (km)")
#par1.set_ylabel("foF2 (MHz)")
#par2.set_ylabel("h\'F (km)")
host.yaxis.label.set_color(p1.get_color())
par1.yaxis.label.set_color(p2.get_color())
par2.yaxis.label.set_color(p3.get_color())
tkw = dict(size=4, width=1.5)
host.tick_params(axis='y',colors=p1.get_color(),**tkw)
par1.tick_params(axis='y',colors=p2.get_color(),**tkw)
par2.tick_params(axis='y',colors=p3.get_color(),**tkw)
host.tick_params(axis='x',**tkw)
lines = [p1, p2, p3] #(comentar se não houver terceiro plot)
host.legend(lines,[l.get_label() for l in lines],loc = 'upper center')
plt.xlim(0,24)
plt.xticks(np.linspace(0, 24, 7, endpoint=True))
plt.title('hmF2, foF2 e h\'F para ' + fn[:-4])
plt.grid(True)
plt.savefig(directory+'out\\'+fn[:2]+fn[-9:-4]+'_h_fo')
plt.clf()
plt.gcf()
plt.close()