[英]Pandas: How to Personalize dataframe.boxplot()?
我正在尝试使用Pandas的dataframe.boxplot()
创建一些数据的箱线图。 这是一个代码示例:
import pandas as ps
import matplotlib.pyplot as plt
df1 = ps.DataFrame( {'1':[2,3,4, 5,6,7, 9,10,11], 'blocks': [1,1,1, 2,2,2, 3,3,3]} )
#
boxes_col = dict(facecolor="snow", color="black", fill=True)
median_col = dict(color="black", linewidth=2)
whisk_col = dict(color="black")
cap_col = dict(color="black")
#
P = df1.boxplot(by='blocks', patch_artist=True,
boxprops = boxes_col, medianprops = median_col,
whiskerprops = whisk_col, capprops = cap_col,
return_type = "dict",
)
plt.title("")
plt.show()
但是结果却不是预期的:
文本形式的结果是:
{'whiskers': [<matplotlib.lines.Line2D object at 0x7f0fcd7c06d8>, <matplotlib.lines.Line2D object at 0x7f0fcd826ba8>, <matplotlib.lines.Line2D object at 0x7f0fcd7d82e8>, <matplotlib.lines.Line2D object at 0x7f0fcd7d8438>, <matplotlib.lines.Line2D object at 0x7f0fcd7e3eb8>, <matplotlib.lines.Line2D object at 0x7f0fcd7eb048>], 'caps': [<matplotlib.lines.Line2D object at 0x7f0fcd7c0c18>, <matplotlib.lines.Line2D object at 0x7f0fcd7ce080>, <matplotlib.lines.Line2D object at 0x7f0fcd7d8860>, <matplotlib.lines.Line2D object at 0x7f0fcd7d8c88>, <matplotlib.lines.Line2D object at 0x7f0fcd7eb470>, <matplotlib.lines.Line2D object at 0x7f0fcd7eb898>], 'boxes': [<matplotlib.patches.PathPatch object at 0x7f0fcd7c0470>, <matplotlib.patches.PathPatch object at 0x7f0fcd7d8080>, <matplotlib.patches.PathPatch object at 0x7f0fcd7e3c50>], 'medians': [<matplotlib.lines.Line2D object at 0x7f0fcd7ce4a8>, <matplotlib.lines.Line2D object at 0x7f0fcd7e30f0>, <matplotlib.lines.Line2D object at 0x7f0fcd7ebcc0>], 'fliers': [<matplotlib.lines.Line2D object at 0x7f0fcd7ce8d0>, <matplotlib.lines.Line2D object at 0x7f0fcd7e3518>, <matplotlib.lines.Line2D object at 0x7f0fcd7f4128>], 'means': []}
我想问的是,如何在R样式中获得更多箱形图(白框,黑线)?
尝试为轴设置一个变量,您可以修改有关该图的许多属性。
fig, ax = plt.subplots(nrows=1, ncols=1)
P = df1.boxplot(by='blocks', patch_artist=True, ax=ax,
boxprops = boxes_col, medianprops = median_col,
whiskerprops = whisk_col, capprops = cap_col,
return_type = "dict",
)
ax.grid(False)
for patch in P[0]['boxes']:
patch.set_facecolor('white')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.