python – Matplotlib寄生对数轴勾选不需要的镜像
发布时间:2020-12-20 13:43:19 所属栏目:Python 来源:网络整理
导读:我正在尝试使用来自mpl_toolkits.axes_grid1的host_subplot创建一个带有两个y轴的图,其中一个是对数的,一个是线性的.该图看起来没问题,但是辅助y轴(右)的次要刻度也显示在图的内侧的主y轴(左)上. import matplotlib.pyplot as pltfrom mpl_toolkits.axes_gri
我正在尝试使用来自mpl_toolkits.axes_grid1的host_subplot创建一个带有两个y轴的图,其中一个是对数的,一个是线性的.该图看起来没问题,但是辅助y轴(右)的次要刻度也显示在图的内侧的主y轴(左)上.
import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import host_subplot import mpl_toolkits.axisartist as AA host = host_subplot(111) host.set_yticks(np.arange(-12,-3,1.0)) par1 = host.twinx() par1.set_ylim( 2.7040e+3,1.3552e+7) par1.set_yscale('log') minorLocator_x1 = MultipleLocator(0.3333) minorLocator_y1 = MultipleLocator(0.5) host.xaxis.set_minor_locator(minorLocator_x1) host.yaxis.set_minor_locator(minorLocator_y2) 我可以使用以下方法修复镜像的次对数轴刻度: host = host_subplot(111,axes_class=AA.Axes) 但是,这会产生另一个问题,即x轴刻度标签显示在图的内部,就像x轴标签一样. 关于如何规避问题的任何想法? 解决方法
我找到了解决问题的解决方法,但没有使用mpl_toolkits.axes_grid1中的host_subplot.相反,我使用matplotlib轴,如下所示:
fig,ax1 = plt.subplots() ax1.set_xlim(-0.25,5.1) ax1.set_ylim(-3.75,-13) ax2=ax1.twinx() ax1.set_xlabel('X-label',fontdict=font) ax1.set_ylabel('Y1-label$',rotation='horizontal',fontdict=font) ax2.set_ylabel('Y2-label',fontdict=font) ax2.set_ylim(2.7040e+3,1.3552e+7) ax2.set_yscale('log') ax1.set_yticks(np.arange(-12,1.0)) ml = MultipleLocator(0.5) minorLocator = MultipleLocator(0.3333) ax1.xaxis.set_minor_locator(minorLocator) ax1.yaxis.set_minor_locator(ml) 这产生了正确的情节.在我看来,之前的问题是第一种情况下的ticks(set_minor_locator)的模糊分配(不使用host_subplot中的axes_class = AA.Axes). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |