python条形图颜色设置_python – 在matplotlib中的条形图中设置不同的错误栏颜色...

我想更改错误栏颜色.经过多次尝试后,我找到了一条路:

a = plt.gca()

b = a.bar(range(4), [2]*4, yerr=range(4))

c = a.get_children()[8]

c.set_color(['r','r','b','r'])

有没有更好的方法?当然a.get_children()[8]根本不是一般解决方案.

解决方法:

如果您只想将它​​们设置为单一颜色,请使用error_kw kwarg(预期是传递给ax.errorbar的关键字参数的字典).

另外,您知道,您可以将一系列面部颜色直接传递到条形图,但这不会更改错误条颜色.

作为一个简单的例子:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ax.bar(range(4), [2] * 4, yerr=range(1, 5), alpha=0.5,

color=['red', 'green', 'blue', 'cyan', 'magenta'],

error_kw=dict(ecolor='gray', lw=2, capsize=5, capthick=2))

ax.margins(0.05)

plt.show()

但是,如果您希望错误栏的颜色不同,则需要单独绘制它们或者之后修改它们.

如果你使用后一个选项,那么capline颜色实际上不能单独更改(注意它们在@fattru的例子中也没有改变).例如:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

colors = ['red', 'green', 'blue', 'cyan', 'magenta']

container = ax.bar(range(4), [2] * 4, yerr=range(1, 5), alpha=0.5, color=colors,

error_kw=dict(lw=2, capsize=5, capthick=2))

ax.margins(0.05)

connector, caplines, (vertical_lines,) = container.errorbar.lines

vertical_lines.set_color(colors)

plt.show()

上面答案中的caplines对象是两个Line2D的元组:所有顶帽的一条线,所有底帽的一条线.如果不删除该艺术家并在其位置创建LineCollection,则无法单独更改大写字母的颜色(很容易将它们全部设置为相同的颜色).

因此,在这种情况下,您最好只是单独绘制错误栏.

例如.

import matplotlib.pyplot as plt

x, height, error = range(4), [2] * 4, range(1,5)

colors = ['red', 'green', 'blue', 'cyan', 'magenta']

fig, ax = plt.subplots()

ax.bar(x, height, alpha=0.5, color=colors)

ax.margins(0.05)

for pos, y, err, color in zip(x, height, error, colors):

ax.errorbar(pos + 0.4, y, err, lw=2, capsize=5, capthick=2, color=color)

plt.show()

标签:python,matplotlib

来源: https://codeday.me/bug/20191004/1853566.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值