我试图绘制两条带有误差线的数据线,每条误差线都与数据线颜色相同。但是,当我添加错误条时,我得到了另一条细线,其中我没有在每条数据线中指定颜色。
另外,我想让错误条的上限更粗,但选项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()
答案 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
中解压缩。