0

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

ここに画像の説明を入力

4

0 に答える 0