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

2024-02-25

我正在尝试使用 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', rotation='horizontal', fontdict=font)

ax2.set_ylim(2.7040e+3,  1.3552e+7)
ax2.set_yscale('log')
ax1.set_yticks(np.arange(-12, -3, 1.0))

ml = MultipleLocator(0.5)
minorLocator = MultipleLocator(0.3333)
ax1.xaxis.set_minor_locator(minorLocator)
ax1.yaxis.set_minor_locator(ml)

这会产生正确的情节。在我看来,之前的问题是第一种情况下刻度线(set_minor_locator)的模糊分配(在host_subplot中不使用axes_class=AA.Axes)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matplotlib寄生对数轴勾选不需要的镜像 的相关文章

随机推荐

  • 如何在 CodeIgniter 中包含 jQuery 文件?

    我想在我的 CodeIgniter 项目中使用 jQuery 我不知道如何包含js文件 我希望在我看来有类似下面的内容 首先 创建一个文件夹来放置它 然后你可以使用像这样的模板系统this one http williamsconcepts
  • 如何验证 gpg 签名是否与公钥文件匹配?

    我知道如何使用 gpg 验证 如下所示 gpg verify somefile sig gpg Signature made Tue 23 Jul 2013 13 20 02 BST using RSA key ID E1B768A0 gp
  • 有关 tkinter optionmenu 第一个选项消失的更多信息

    这是我的问题的后续here https stackoverflow com questions 25194969 more on python tkinter dynamic optionmenu 25196500 25196500 我正在
  • 与 iOS 6.0 原生 Facebook 集成共享:“通过我的应用程序名称发布”?

    我刚刚通过 ios 6 将 facebook 集成到我的应用程序中 但在墙上发帖时遇到问题 它只是说 通过 ios 应用程序发布 我想让它说 通过应用程序名称发布 我已经使用 Facebook 创建了应用程序身份 并且拥有他们分配的应用程序
  • 如何在 matplotlib / Python 中直接将散点图叠加在 jpg 图像上?

    我需要快速绘制作为跟踪算法输出的 jpg 帧 与 jpg 帧一起的是包含简单 x y 数据的文本文件 用于定位正在跟踪的图像目标 我想使用 matplotlib 绘制 jpg 图像 然后覆盖 x y 数据的散点图 该数据从文本文件中读取并存
  • Tensorflow 0.8导入导出输出张量问题

    我正在使用 Tensorflow 0 8 和 Python 3 我正在尝试训练神经网络 目标是每 50 次迭代自动导出 导入网络状态 问题是当我在第一次迭代时导出输出张量时 输出张量名称是 Neg 0 Slice 0 但是当我在第二次迭代时
  • WSO2 ESB 4.8 中的 RabbitMQ AMQP 传输支持

    http docs wso2 org display ESB480 RabbitMQ AMQP Transport http docs wso2 org display ESB480 RabbitMQ AMQP Transport我已经完成
  • 如何在 R 中执行*快速* DCT(离散余弦变换)?

    使用 Rprof 发现 dtt 包中的 dct 是一段运行速度相当缓慢的 R 代码中的主要罪魁祸首 将其替换为 stats 包中的 fft 这不是相同的转换 但应该花费相同的时间来计算 我的运行时间显着提高 事实上 我的 Rprof 线路中
  • 拉力赛Python API

    我正在尝试按照以下网址的说明使用 Python 工具包获取我公司的 Rally 订阅http developer rallydev com help python toolkit rally rest api http developer
  • 使用 Java 连接到在 Docker 内运行的 MongoDB 副本集 (Windows)

    我想使用 docker 设置 MongoDB 副本集 设置似乎没问题 但我无法使用 Java 应用程序连接到集群 我在 Windows 10 上运行 Docker 版本 17 06 0 ce 并使用 VirtualBox 作为驱动程序 我按
  • 在 Google 地图上处理 ctrl+click

    我试图让用户通过按控制键并单击标记来选择地图上的多个标记 为此 我编写了以下代码 google maps event addListener marker click function e detect if is pressed ctrl
  • Java:摆脱 `Cipher.init()` 开销

    我需要提高以下方法的性能 private byte decrypt final byte encrypted final Key key throws this cipher init Cipher DECRYPT MODE key ret
  • NetworkX 打乱节点顺序

    我是编程初学者 也是新来的 所以你好 我在 networkX 中遇到节点顺序问题 这段代码 letters G nx Graph for i in range nodesNum letter ascii lowercase i letter
  • 将 Hg 与 Grails 结合使用的最佳实践?

    我应该办理什么手续 不办理什么手续 由于许多文件有时是自动生成的 我不完全确定如何使用版本控制来处理这个问题 它与标签有关吗 例如在 ANT 中 我know不要签入我的 target bin 目录 但是 Grails 对此又增加了一层混乱
  • 如何使用 jQuery 设置跨度值

    如何设置a的值 span 使用 jQuery 标记 例如 下面是我的 span tag span span 在我的 jQuery 代码中 jQuery noConflict jQuery document ready function va
  • 使用 MEF 2 组合导出值

    使用 MEF 1 可以使用 ComposeExportedValue Method 将现有对象组合到容器中 container ComposeExportedValue 如何使用 Microsoft Composition MEF 2 来完
  • 如何在不使用触摸屏的情况下模拟触摸事件

    我目前正在尝试开发一个触摸屏应用程序 Windows 7的 视觉工作室2013 C WPF 我工作的地方将配备触摸屏 实际上是放置在平面屏幕上的一层 我希望能够生成触摸输入 以便在没有屏幕的情况下开发和测试应用程序 我找到的所有资源要么非常
  • 定制 Android 操作系统构建

    我想知道创建自定义 Android 版本并将其部署到市场上当前可用的设备上的可行性如何 是否有描述该过程的文件或指南 先感谢您 萨米 Try dsixda 的 Android 厨房 http forum xda developers com
  • JSON序列化时如何使用JavaScriptSerializer设置格式?

    我正在使用 JavaScriptSerializer 将文件中的对象序列化为 JSON 格式 但结果文件没有可读的格式 如何允许格式化以获得可读文件 你可以使用JSON NET http json codeplex com 序列化器 支持
  • Matplotlib寄生对数轴勾选不需要的镜像

    我正在尝试使用 mpl toolkits axes grid1 中的 host subplot 制作一个具有两个 y 轴的图 其中一个是对数轴 一个是线性轴 该图看起来不错 但辅助 y 轴 右 的小刻度也显示在图内部的主 y 轴 左 上 i