我正在努力将箱形图中的飞行器标记更改为我选择的自定义颜色.在前三个值之后,它将恢复为默认值.我看到有几个与此相关的matplotlib问题,有什么解决方案吗?
在此先感谢您的帮助!
import matplotlib.pyplot as plt
x = [0.15, 0.11, 0.06, 0.06, 0.12, 0.56]
y = [x, x, x, x, x, x]
boxes = plt.boxplot(y, sym="o")
cols = ['green', 'red', 'blue', 'orange', 'purple', 'black']
for f, fc in zip(boxes['fliers'], cols):
f.set_color(fc)
f.set_markersize(40)
f.set_alpha(0.6)
f.set_markeredgecolor("None")
f.set_marker('.')
plt.show()
解决方法:
原始问题中给出的代码在matplotlib v1.5dev的开发版本中不起作用.这是因为set_color方法不会对facecolor起作用,而应该是set_markerfacecolor.一个完整的工作示例是:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = [0.15, 0.11, 0.06, 0.06, 0.12, 0.56]
y = [x, x, x, x, x, x]
boxes = plt.boxplot(y,
flierprops={'alpha':0.6,
'markersize': 40,
'markeredgecolor': 'None',
'marker': '.'
})
cols = ['green', 'red', 'blue', 'orange', 'purple', 'black']
for f, fc in zip(boxes['fliers'], cols):
f.set_markerfacecolor(fc)
plt.show()
为了便于阅读,我还将所有固定属性都设置在flierprops中.