小编Ron*_*ara的帖子

Matplotlib 在附加轴上的错误位置打勾

我想在与原始 x 轴刻度相同的位置(在轴上)有一个带有刻度的上 X 轴(尽管刻度标签可以不同)。这似乎很容易做到,但我不确定为什么下面的代码不起作用:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)

X = np.linspace(11,80,1000)
Y = 2*np.sin(X)*np.exp(-X/20.)

ax1.plot(X,Y)
ax2 = ax1.twiny()

old_ticks = ax1.get_xticks()
ax2.set_xticks(old_ticks)

plt.show()
Run Code Online (Sandbox Code Playgroud)

输出如下所示:显然,顶部轴上的刻度与下面的刻度不在同一位置(即,在顶部轴上有 7 个刻度,而底部只有 6 个刻度)。

为什么会这样?

第二个 x 轴上的偏移刻度

编辑:设置 xlim (如下所示)仅适用于初始绘图,但不适用于放大不同区域。我添加了一个回调函数,在放大/缩小时,在与 onax2相同的位置添加刻度ax1,但这似乎不起作用。

此外,我使用的原因twiny是因为最终显示的刻度值ax2将以ax1非线性方式取决于刻度值。我只希望刻度线在轴上的相同位置。import numpy as np import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)

X = np.linspace(11,80,1000)
Y = 2*np.sin(X)*np.exp(-X/20.)

ax1.plot(X,Y)
ax2 = ax1.twiny()

ax2.set_xlim(ax1.get_xlim())
ax2.set_xticks(ax1.get_xticks()) …
Run Code Online (Sandbox Code Playgroud)

python customization matplotlib

6
推荐指数
1
解决办法
4684
查看次数

标签 统计

customization ×1

matplotlib ×1

python ×1