我有以下数据框:
A B C
Date
2015-04-20 -0.000585 -0.003030 0.000198
2015-04-21 -0.001334 -0.001330 0.000712
2015-04-22 -0.000967 -0.000317 0.002388
2015-04-23 -0.004314 -0.001281 0.002453
2015-04-24 -0.004910 -0.002032 0.002502
...
,我想要一个箱形图,它表示每年的值(A,B,C)(每年箱形图)。我已经在此direction中进行过尝试,但无法使其合适。我最后的尝试是:
df = pd.DataFrame(index=mydf.index.values,
data=mydf.values,
columns=mydf.columns.values)
df['Year'] = mydf.index.year
ax = sns.boxplot(data=df, x='Year', y=mydf.index.values)
for item in ax.get_xticklabels():
item.set_rotation(90)
并返回
ValueError:所有数组的长度必须相同
答案 0 :(得分:2)
您可以通过堆叠DataFrame
来尝试这种方式:
df_stacked = df.stack().rename('y').reset_index()
sns.boxplot(data=df_stacked,
x=df_stacked.Date.dt.year,
y='y'
)