我习惯阅读编程文档,但我不得不承认,当谈到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的问题非常类似,答案无效。
祝你好运
答案 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))
可能很难看出这是有效的,但是如果你偏移了x
值,你就会看到它正在绘制错误条。
plt.boxplot(y)
plt.errorbar(x + 0.5, np.mean(y, axis=0), yerr=np.std(y, axis=0))
最后,您可以向x
添加1以获得您可能想要的内容。
plt.boxplot(y)
plt.errorbar(x + 1, np.mean(y, axis=0), yerr=np.std(y, axis=0))
答案 1 :(得分:1)
不确定为什么每次都打电话给twinx
,我想你只想这样做:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.errorbar( ... )
ax.boxplot(...)
plt.show()