matplotlib的误差条可以设置线条样式吗?
有没有办法让matplotlib中的误差条和数据点使用相同的线条样式呢?
在下面的例子中,画了两条线。其中一条是虚线,因为用了ls='-.'
这个参数。但是,误差条是实线。有没有办法把误差条的样式改成和结果线一样呢?
import matplotlib.pyplot as plt
import numpy as np
x = np.array(range(0,10))
y = np.array(range(0,10))
yerr = np.array(range(1,11)) / 5.0
yerr2 = np.array(range(1,11)) / 4.0
y2 = np.array(range(0,10)) * 1.2
plt.errorbar(x, y, yerr=yerr, lw=8, errorevery=2, ls='-.')
plt.errorbar(x, y2, yerr=yerr2, lw=8, errorevery=3)
plt.show()
2 个回答
0
你还可以使用在 plt.errorbar() 命令中包含的 fmt 选项。
比如,在你的情况下:
plt.errorbar(x, y, yerr=yerr, fmt='-.' , lw=8, errorevery=2)
plt.errorbar(x, y2, yerr=yerr2, lw=8, errorevery=3)
38
这很简单,想要改变误差条的线条样式,只需要简单地调用一下 .set_linestyle
方法就可以了:
eb1=plt.errorbar(x, y, yerr=yerr, lw=2, errorevery=2, ls='-.')
eb1[-1][0].set_linestyle('--') #eb1[-1][0] is the LineCollection objects of the errorbar lines
eb2=plt.errorbar(x, y2, yerr=yerr2, lw=2, errorevery=3)
eb2[-1][0].set_linestyle('-.')