python – matplotlib:boxplot对象中的传单没有正确设置

我正在努力将箱形图中的飞行器标记更改为我选择的自定义颜色.在前三个值之后,它将恢复为默认值.我看到有几个与此相关的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()

python  –  matplotlib:boxplot对象中的传单没有正确设置

解决方法:

原始问题中给出的代码在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中.

上一篇:python迭代-如何使用生成器函数实现可迭代对象


下一篇:如何在PHP中从数组中获取框图密钥数?