熊猫.boxplot属性不起作用
问题描述:
我想自定义从数据框中创建的boxplot,使用whiskerprops
,capprops
,medianprops
但我设置的参数不起作用。熊猫.boxplot属性不起作用
例如
import pandas as pd
import matplotlib.pyplot as plt
df=pd.DataFrame(index = [x for x in range(0,10)])
for col in range(1,5):
df[col]= df.index * col/10
fig, ax = plt.subplots()
bp = df.plot.box(
ax=ax,
whis=[5, 95],
showcaps=True,
showfliers=False,
whiskerprops = {'color':'k','linewidth':0.5,'linestyle':'solid'},
capprops={'color': 'k', 'linewidth': 0.5, 'linestyle': 'solid'},
medianprops = {'color':'k','linewidth': 0.5, 'linestyle': 'solid'}
)
plotFile = 'C:\\Desktop\\example.png'
fig.savefig(plotFile, dpi=1000)
我期待着与胡须,帽子和中位数全黑色的箱线图,但我得到这个: 尾巴是蓝色和中位数为绿色。为什么参数被忽略?
答
而不是调用了每个属性,并试图改变颜色的,只是使用color
参数并改变每个属性存在的颜色:
test = df.plot.box(color = {'whiskers' : 'black',
'caps' : 'black',
'medians' : 'black',
'boxes' : 'black'})
plt.show()
编辑
以下是您可以如何编辑linewidth
test = df.plot.box(color = {'whiskers' : 'black',
'caps' : 'black',
'medians' : 'black',
'boxes' : 'black'},
whiskerprops = {'linewidth' : 4},
flierprops = {'linewidth' : 4},
medianprops = {'linewidth' : 4},
boxprops = {'linewidth' : 4})
plt.show()
文档:https://pandas.pydata.org/pandas-docs/stable/visualization.html#box-plots
大。谢谢。 (之前我曾尝试过,但是使用'df.boxplot'而不是'df.plot.box'。出于某种原因,'color'不适用于'.boxplot'。)是否有等效的'linewidth'参数? – doctorer
有。请参阅我的编辑。 –
谢谢伊恩。奇怪的是,不同的参数需要不同的方法。而'whiskerprops'等不能用来定义颜色。 – doctorer