首页 > 解决方案 > 如何获取 matplotlib ticklabel_format:样式“科学”到仅一个选定的“y”轴

问题描述

我正在绘制一个图,其中我有两个 y 轴,一个主轴和一个辅助轴。现在我想要“科学”风格只有主要的 y 轴。我尝试使用 ticklabel_format 但无法弄清楚如何使一个科学和另一个保持简单。以下是代码

x1 =(0, 1, 2)
x2 =(0.1, 5, 7)
y1 = (1e-4, 2e-4, 3e-4)
y2 = (1000, 1200, 1500)
fig1, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(x1, y1)
ax2.plot(x2, y2)
plt.ticklabel_format(axis="y", style="sci", scilimits=(0,0))

这是生成的图像

我想将主要的 y 轴绘制为科学的,将次要的 y 绘制为普通的。提前致谢!

标签: pythonmatplotlib

解决方案


您所要做的就是修改提供的代码中的最后一行以使用 ax1 而不是 plt:

ax1.ticklabel_format(axis="y", style="sci", scilimits=(0,0))
plt.show()

您当前的解决方案是调用ticklabel_format()plt; 为确保将其应用于正确的轴,您应该在要修改的对象上调用该方法。

预期图像


推荐阅读