【问题标题】:Force pyplot subplots to use the same y-axis scale强制 pyplot 子图使用相同的 y 轴刻度
【发布时间】:2016-02-02 15:37:54
【问题描述】:

我有一个脚本来绘制带有原始源数据、背景和已校正背景的源的计数率,我想将一个显示在另一个下方。但是,我还希望三个单独的子图具有相同的 y 轴限制和比例,以帮助比较三者。由于我会将其应用于大量数据集,因此我不能每次都手动将所有三个设置为具有相同的限制。

这是一个 MWE:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(11)
y1 = np.arange(1,6.1,0.5)
y2 = np.arange(11)
y3 = np.arange(4,9.1,0.5)

plt.subplot(3,1,1)
plt.errorbar(x, y1, yerr=0.5)

plt.subplot(3,1,2)
plt.errorbar(x, y2, yerr=1.0)

plt.subplot(3,1,3)
plt.errorbar(x, y3, yerr=0.5)

plt.show()

【问题讨论】:

标签: python matplotlib subplot


【解决方案1】:

你是这个意思吗?

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(11)
y1 = np.arange(1,6.1,0.5)
y2 = np.arange(11)
y3 = np.arange(4,9.1,0.5)

plt.subplot(3,1,1)
plt.errorbar(x, y1, yerr=0.5)
ymin, ymax = plt.gca().get_ylim()

plt.subplot(3,1,2)
plt.errorbar(x, y2, yerr=1.0)
plt.ylim([ymin, ymax])

plt.subplot(3,1,3)
plt.errorbar(x, y3, yerr=0.5)
plt.ylim([ymin, ymax])

plt.show()

【讨论】:

  • 嗯...是的,这将它们设置为相同的比例,但在该示例中,它切断了其他两个图顶部的一些值。我想我可以对三个数组的最小值和最大值进行测试,并使用它们以某种方式设置限制(包括它们周围的一些额外空白)
  • 您可以选择其他 2 个图的自动限制,并使用第一个图的限制调整这些限制。现在你知道怎么做了。
猜你喜欢
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2013-01-22
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
相关资源
最近更新 更多