单y轴

2024-04-25 13:24:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用两个Y轴(左和右)为同一个数据创建一个绘图,也就是说,一个是另一个的缩放版本。我还想保留刻度位置和网格位置,这样网格将匹配两侧的记号。在

我试图通过绘制两倍相同的数据来实现这一点,一个是按原样绘制的,另一个是按比例绘制的,但它们不是重合的。在

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(17, 27, 0.1)
y1 = 0.05 * x + 100

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-')
ax2.plot(x, y1/max(y1), 'g-')

ax1.set_xlabel('X data')
ax1.set_ylabel('Y data', color='g')
ax2.set_ylabel('Y data normalized', color='b')

plt.grid()
plt.show()

任何帮助都将不胜感激。在


Tags: 数据import网格dataplotasnp绘制
1条回答
网友
1楼 · 发布于 2024-04-25 13:24:40

不确定是否可以实现这一点,而不必在规格化轴上获得难看的数字。但如果你不介意的话,试着在代码中添加以下内容:

ax2.set_ylim([ax1.get_ylim()[0]/max(y1),ax1.get_ylim()[1]/max(y1)])
ax2.set_yticks(ax1.get_yticks()/max(y1))

可能不是最优雅的解决方案,但它可以缩放轴限制和刻度位置,与您处理数据本身的操作类似,因此网格与两个轴匹配。在

相关问题 更多 >