我正在寻找一种在使用科学计数法时改变指数在轴上的位置的方法。我已经被这个问题困扰过几次了。我已经知道默认格式化程序是ScalarFormatter但它没有选项以某种方式访问指数。
有一个解决方法,但我不喜欢它,因为它还会操纵现有的刻度标签。到目前为止,我发现,get_xmajorticklabels()如果使用科学记数法,轴方法返回的列表会多包含一个文本对象。例如:
import matplotlib.pyplot as plt
import numpy as np
fig= plt.figure(figsize = plt.figaspect(0.5))
ax1= fig.add_subplot(121)
ax1.plot(np.arange(146), np.random.rand(146))
print(ax1.get_xmajorticklabels())
ax2= fig.add_subplot(122)
ax2.plot(np.arange(146)*1e-6, np.random.rand(146))
print(ax2.get_xmajorticklabels())
Run Code Online (Sandbox Code Playgroud)

打印给出: <a list of 9 Text xticklabel objects>因此<a list of 10 Text xticklabel objects>
我认为附加列表项可能是指数的文本对象。但当我打印文本时它是空的。
有没有办法以文本对象的形式访问该指数?那么应该可以设置它的位置,不是吗?
我正在尝试将 matplotlib 中的不同绘图设置结合在一起。我在 matplotlib 示例库/文档和堆栈中找到了每个示例的很好的示例,但我找不到有关我的具体问题的任何内容。
\n\n所以到目前为止我所知道的是,如何添加一个或多个具有偏移 y 轴的轴,以便通过使用ax.twinx(). 在示例寄生轴演示中,第三个 y 轴称为寄生轴。但是,如果您想添加一个附加轴(该轴只是现有轴的缩放版本),则可以使用,如辅助轴演示中所示。没有其他数据可供绘制。ax.secondary_yaxis()
到目前为止,我无法实现的是与原始 y 轴偏移的辅助 y 轴。这对于使图表在科学界更具可读性非常有帮助。例如,虽然一些科学家使用频率作为电磁频谱的参考,但其他科学家则使用波长或波数。Afsar [1] 使用了一种非常方便的轴标签,其中在同一图中包含所有三个变量:
\n\n\n\n我想要类似的东西,只是在 y 轴而不是 x 轴上。有没有办法使次轴与主轴偏移?我尝试了一些参数但无法弄清楚。
\n\n感谢您的任何帮助!
\n\n[1] 穆罕默德·努鲁尔·阿夫萨。\xe2\x80\x9c常见聚合物的复折射率、复介电常数和损耗角正切的精密毫米波测量。\xe2\x80\x9d IEEE 仪器和测量汇刊 IM\xe2\x80\x9336,编号。2(1987 年 6 月):530\xe2\x80\x9336。https://doi.org/10.1109/TIM.1987.6312733。
\n\n[1]:
\n