在seaborn中绘制两列dataFrame

2024-04-24 19:50:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在seaborn中创建一个条形图,它显示数据框中每一行(因子)的两个变量(权重、方差)的值。以下是我的数据:

    Factor    Weight  Variance
    Growth    10%      0.15
    Value     20%      0.35

这是我的代码:

    fig=plt.figure(figsize=(10,10))
    ax1=fig.add_subplot(221)
    sns.barplot(x=df.index, y=df[['Weight', 'Variance']], ax=ax1)

每当我无法调试时,上面的代码都会返回一个错误。我试图实现的是有一个图,每个因素显示两个彩色条;一种颜色的权重(例如:红色)和另一种颜色的方差(例如:蓝色)。

有人有建议或潜在的解决办法吗?

谢谢


Tags: 数据代码df颜色figseaborn因子权重
1条回答
网友
1楼 · 发布于 2024-04-24 19:50:56

除了将数据清理为整洁的格式外,还需要将文本数据(百分比)重新格式化为数字数据类型。因为这与barplots无关,所以我假设您可以自己处理这个问题,并专注于绘图和数据结构:

df = pandas.DataFrame({
    'Factor': ['Growth', 'Value'],
    'Weight': [0.10, 0.20],
    'Variance': [0.15, 0.35]
})
fig, ax1 = pyplot.subplots(figsize=(10, 10))
tidy = df.melt(id_vars='Factor').rename(columns=str.title)
seaborn.barplot(x='Factor', y='Value', hue='Variable', data=tidy, ax=ax1)
seaborn.despine(fig)

enter image description here

相关问题 更多 >