当我尝试复制示例时 here ,我的 fiddle 图(带有我的数据)没有显示中位数和中位数,以及第 25 个和第 75 个百分位数,但原始示例显示。
它似乎也忽略了参数“sticks”
。
这是我尝试过的:
sns.violinplot(df, "stick", color="pastel")
这是我得到的:
虽然原件看起来像下面这样(对于 sns.violinplot(df, color="pastel")
):
注意:
此问题不会影响箱线图。
这是一个产生(非常相似)形状的最小示例:
> df
A B
0RS0NrQDHHx NaN 19.727869
0RS232Ak80k NaN 32.552973
0RSECe1NRShE NaN 44.369213
0RSHVQNT16d NaN 11.306910
0RSO4JcoLeb NaN -7.935776
0RSOrrpKlRu NaN 39.489909
0RSVIHDWBR1 NaN 52.830051
0RSWe5CE1Hk NaN 26.913323
0RSXhLG3Kp8 -1.921543 NaN
0RSc8uRSessd 27.028029 NaN
0RScRSZoDX72 12.713600 NaN
0RSdwNiizS0 28.859158 NaN
0RSeWHWRSww3 12.537717 NaN
0RSrs6jjCsM 5.135179 NaN
0RStNwVhvO1 -55.566641 NaN
0RStQI2VH5A -15.119272 NaN
0RStWRWmH8V -2.369918 NaN
0RSukeajMJy -0.904298 NaN
0RSvJezMyrx -1.105769 NaN
0RSx5WRStDjG 0.899420 NaN
最佳答案
试试 sns.violinplot(df, inner="stick", color="pastel")
。第二个位置参数是分组变量。 (不过,inner="stick"
会显示每个观察结果。如果您想要第 25、50 和 75 个百分位数,请执行 inner="box"
)。
还可以处理具有大量 NA 的相对稀疏的数据帧,例如
df = pd.DataFrame(np.random.randn(20, 5), columns=list("ABCDE"))
for i, c in zip(range(5, 10), df.columns):
df.loc[i, c] = np.nan
你可以做
plot_vals = [v.dropna() for k, v in foo.iteritems()]
sns.violinplot(plot_vals, names=df.columns)
关于python - seaborn 中的 fiddle 图没有显示均值、百分位数或棍棒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543501/