如何绘制错误图和共享x和y轴的箱线图

时间:2013-12-02 00:51:17

标签: matplotlib overlay

我习惯阅读编程文档,但我不得不承认,当谈到matplotlib时,我真的迷失了&困惑。我只想绘制共享相同y轴和x轴的2组数据,但是一组绘制为箱线图,另一组绘制为错误栏。我已经尝试将hold设置为true或克隆X轴,但每次只绘制一个数据集。 有人可以共享一个我可以模仿的简单代码吗?

这是我基本上做的事情

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
ax =  ax1.twinx()
ax.errorbar( ... )
ax =  ax1.twinx()
ax.boxplot(...)
plt.show()

我的问题与add boxplot to other graph in python的问题非常类似,答案无效。

祝你好运

2 个答案:

答案 0 :(得分:3)

你绝对可以做到这一点,你不需要做任何特殊的事情,比如制作多个x或y轴;因为你想在同一组轴上绘制它们,所以你不必改变任何东西。

您需要记住的一件事是箱线图的x轴是range(1, num_boxes + 1),这可能不是您所期望的。

以下是使用随机数据的示例。

x = np.arange(4)
y = np.random.randn(20, 4)
plt.boxplot(y)
plt.errorbar(x, np.mean(y, axis=0), yerr=np.std(y, axis=0))

Error bar and boxplot

可能很难看出这是有效的,但是如果你偏移了x值,你就会看到它正在绘制错误条。

plt.boxplot(y)
plt.errorbar(x + 0.5, np.mean(y, axis=0), yerr=np.std(y, axis=0))

Offset

最后,您可以向x添加1以获得您可能想要的内容。

plt.boxplot(y)
plt.errorbar(x + 1, np.mean(y, axis=0), yerr=np.std(y, axis=0))

Looks okay

答案 1 :(得分:1)

不确定为什么每次都打电话给twinx,我想你只想这样做:

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.errorbar( ... )
ax.boxplot(...)
plt.show()