使用 Seaborn,我可以在同一张图上创建一个
然而,Seaborn.boxplot() 的 API 文档 只提供了一个
由于 Seaborn 使用 matplotlib 进行绘图,因此我认为可以向
pandas DataFrame
的多列箱线图。我想要对离群值(即 fliers)应用自定义样式,例如设置标记符号、颜色和标记大小。然而,Seaborn.boxplot() 的 API 文档 只提供了一个
fliersize
参数,它允许我控制 fliers 的大小,但不能控制其颜色和符号。由于 Seaborn 使用 matplotlib 进行绘图,因此我认为可以向
boxplot
函数提供一个 matplotlib 样式字典,如下所示:import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# create a dataframe
df = pd.DataFrame({'column_a': [3, 6, 200, 100, 7], 'column_b': [1, 8, 4, 150, 290], 'column_c': [6, 7, 20, 80, 275]})
# set figure size
sns.set(rc={"figure.figsize": (14, 6)})
# define outlier properties
flierprops = dict(marker='o', markersize=5)
# create boxplot
ax = sns.boxplot(df, vert=False, showmeans=True, flierprops=flierprops)
plt.show()
结果:
根据提供的字典,我期望看到一个代表
column_c
的大红色圆形标记,但实际上仍然使用了标准设置。
这个帖子描述了一个类似的问题 当直接使用matplotlib时 - 然而,从讨论中我猜测这应该在使用最新版本的matplotlib时已经修复了。
我尝试了使用iPython笔记本(iPython 3.10),matplotlib 1.4.3和seaborn 0.5.1。
sns.boxplot
仍将忽略sym
参数,但您问题中的代码现在应完全起作用,并设置正确的离群值标记。 - mwaskom