【发布时间】:2022-10-15 01:06:36
【问题描述】:
给定
import matplotlib.pyplot as plt
import random
fig, ax = plt.subplots(1, 2, figsize = [9, 5], dpi = 100)
xs = [random.randint(-10, 10) for _ in range(10)]
ys = [random.randint(-10, 10) for _ in range(10)]
xx = [random.randint(-20, 20) for _ in range(10)]
yy = [random.randint(-20, 20) for _ in range(10)]
ax[0].plot(xs, ys)
ax[1].plot(xx, yy)
plt.show()
产生
我希望第二个图的 xticks 和 yticks 与第一个图的相同,而不影响显示的图数据。所以基本上我只想转换/掩盖刻度以匹配第一个情节并保持其他一切完好无损。
我努力了
ax[1].xaxis.set_major_formatter(ax[0].xaxis.get_major_formatter())ax[1].set_xticks(ax[0].get_xticks())ax[1].set_xticklabels(ax[0].get_xticklabels())- 其他一些 ticks.Formatter 东西可以单独转换每个元素,但这似乎有点矫枉过正
这些都不是我想要实现的。
编辑澄清
人们似乎不明白我的要求。我不要希望在更改刻度标签时影响绘图(放大、缩小、平移、旋转)。所以给ax[1] 和ax[2] 完全相同的情节,就像
xmin,xmax = ax[0].get_xlim()
ymin,ymax = ax[0].get_ylim()
ax[2].set_xlim(xmin,xmax)
ax[2].set_ylim(ymin,ymax)
生产
请注意,与第二个相比,第三个图(带有更改的刻度标签)是如何放大的,这不是我想要的。我希望第二个图和第三个图保持不变,但有不同的刻度(以匹配第一个图的刻度)
【问题讨论】:
-
@JodyKlymak 不,我添加了澄清编辑。
标签: python matplotlib xticks