matplotlib的误差条可以设置线条样式吗?

26 投票
2 回答
27102 浏览
提问于 2025-04-18 02:14

有没有办法让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('-.')

在这里输入图片描述

撰写回答