python – Matplotlib寄生对数轴勾选不需要的镜像

python – Matplotlib寄生对数轴勾选不需要的镜像,第1张

概述我正在尝试使用来自mpl_toolkits.axes_grid1的host_subplot创建一个带有两个y轴的图,其中一个是对数的,一个是线性的.该图看起来没问题,但是辅助y轴(右)的次要刻度也显示在图的内侧的主y轴(左)上. import matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1 import host_subplotimpo 我正在尝试使用来自mpl_toolkits.axes_grID1的host_subplot创建一个带有两个y轴的图,其中一个是对数的,一个是线性的.该图看起来没问题,但是辅助y轴(右)的次要刻度也显示在图的内侧的主y轴(左)上.

import matplotlib.pyplot as pltfrom mpl_toolkits.axes_grID1 import host_subplotimport mpl_toolkits.axisartist as AAhost = 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).

总结

以上是内存溢出为你收集整理的python – Matplotlib寄生对数轴勾选不需要的镜像全部内容,希望文章能够帮你解决python – Matplotlib寄生对数轴勾选不需要的镜像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1197103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存