Matplotlib:使用误差条在数据线中获得不同的颜色

时间:2014-10-15 08:34:17

标签: python matplotlib figure

我试图绘制两条带有误差线的数据线,每条误差线都与数据线颜色相同。但是,当我添加错误条时,我得到了另一条细线,其中我没有在每条数据线中指定颜色。

另外,我想让错误条的上限更粗,但选项capthick在这里无效。

有人可以帮我解决这些问题吗?

这是我的代码。

import matplotlib.pyplot as plt
from pylab import *
import numpy as np

xaxis = [1, 2, 3]
mean1 = [1,2,3.6]
se1 = [0.2, 0.5, 0.9]
mean2 = [10, 29, 14]
se2 = [3, 4, 2]

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlabel('X', fontsize = 16)
ax.set_ylabel('Y', fontsize = 16)

ax.axis([0, 5, 0, 35])
ax.plot(xaxis, mean1, 'r--', linewidth = 4)
ax.errorbar(xaxis, mean1, yerr = se1, ecolor = 'r', elinewidth = 2, capsize = 5)
ax.plot(xaxis, mean2, 'b--', linewidth = 4)
ax.errorbar(xaxis, mean2, yerr = se2, ecolor = 'b', elinewidth = 2, capsize = 5)
plt.show()

1 个答案:

答案 0 :(得分:3)

额外细线来自errorbar()电话。

errorbar也会绘制一条线,你正在做的是改变误差线的颜色,而不是实际的线(因此它使用标准的matplotlib前两种颜色,蓝色和绿色。

全部在文档中,here

要实现您的目标,您只需使用errorbar()功能;

这就是我想要的,也许jsut稍微调整数字。

import matplotlib.pyplot as plt
from pylab import *
import numpy as np

xaxis = [1, 2, 3]
mean1 = [1,2,3.6]
se1 = [0.2, 0.5, 0.9]
mean2 = [10, 29, 14]
se2 = [3, 4, 2]

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlabel('X', fontsize = 16)
ax.set_ylabel('Y', fontsize = 16)

ax.axis([0, 5, 0, 35])
linestyle = {"linestyle":"--", "linewidth":4, "markeredgewidth":5, "elinewidth":5, "capsize":10}
ax.errorbar(xaxis, mean1, yerr = se1, color="r", **linestyle)
ax.errorbar(xaxis, mean2, yerr = se2, color="b", **linestyle)
plt.show()

我将公共线型参数放入dict中解压缩。

enter image description here