moo*_*min 8 matplotlib python-3.x jupyter-notebook
我正在尝试使用 matplotlib 从 pandas 数据帧创建箱线图。
我能够获取箱线图并更改轮廓和中线的线宽,但我想将所有颜色更改为黑色。我尝试了 Pandas boxplot 中描述的几种方法:设置 box、median、mean 的颜色和属性以及Change the facecolor of boxplot in pandas。
然而,他们都不适合我的情况。
有人可以解决这些问题吗?
这是我的代码:
版本:python 3.6.5
import pandas as pd
from pandas import DataFrame, Series
import matplotlib.pyplot as plt
df = pd.read_excel("training.xls")
fig = plt.figure()
ax = fig.add_subplot(111)
boxprops = dict(color="black",linewidth=1.5)
medianprops = dict(color="black",linewidth=1.5)
df.boxplot(column=["MEAN"],by="SrcID_Feat",ax=ax,
boxprops=boxprops,medianprops=medianprops)
plt.grid(False)
Run Code Online (Sandbox Code Playgroud)
结果

这是解决您问题的一种方法(省略与问题无关的细节):
fig, ax = plt.subplots()
box_plot = ax.boxplot(..., patch_artist=True)
for median in box_plot['medians']:
median.set_color('black')
Run Code Online (Sandbox Code Playgroud)
median是 matplotlib.lines.Line2D 类型的对象,它公开了set_color可用于设置每个框的颜色的方法。
小智 4
我发现除非添加参数patch_artist=True,否则所有 boxprops 字典都不会对箱线图产生任何影响。例如,当我生成一个箱线图并将面色更改为黄色时,我必须使用以下编码:
plt.boxplot(boxplot_data, positions=[1], patch_artist=True, boxprops=dict(facecolor='yellow'), showmeans=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15978 次 |
| 最近记录: |