我试图在单个情节中的多个情节中改变每个小提琴情节的颜色。我可以改变颜色
身体
,但我不能改变颜色
厘巴
,
cmins
,
cmaxes
我该怎么做?
import matplotlib.pyplot as plt
mock_data= [
[0,1,2,3,4,5,6,7,8,9],
[1,2,3,4,5,6,7,8,9,10],
[2,3,4,5,6,7,8,9,10,11],
[3,4,5,6,7,8,9,10,11,12],
[4,5,6,7,8,9,10,11,12,13],
[5,6,7,8,9,10,11,12,13,14],
[6,7,8,9,10,11,12,13,14,15],
[7,8,9,10,11,12,13,14,15,16],
[8,9,10,11,12,13,14,15,16,17],
[9,10,11,12,13,14,15,16,17,18],
]
pos = [0,1,2,3,4,5,6,7,8,9]
colors = ["C0","C1","C2","C3","C4","C5","C6","C7","C8","C9"]
fig, ax = plt.subplots(1,1)
violin = ax.violinplot(mock_data,positions=pos)
for things in ["bodies","cbars","cmins","cmaxes"]:
for vp, co in zip(violin[things],colors):
vp.set_facecolor(co)
vp.set_edgecolor(co)
plt.show()
使用上述代码,我得到以下错误
Traceback (most recent call last):
File "/downloads/violin.py", line 25, in <module>
for vp, co in zip(violin[things],colors):
^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'LineCollection' object is not iterable
似乎只有
violin["bodies"]
是可迭代的,但是
violin["cbars"]
,
violin["cmins"]
,
violin["cmaxes"]
没有。鉴于此,我如何有效地更改平均值、分钟和最大值的线条颜色?