【问题标题】:Grouped bar graphs with numerical values in pythonpython中带有数值的分组条形图
【发布时间】:2021-07-28 17:03:38
【问题描述】:

我无法共享我的数据集,但它看起来像这样。

category sales profit
(7 types) (float) (float)

实际上有 6 列带有数值变量。我想在 python 上将其绘制为一个分组条形图,其中类别作为 x 轴,单个条形线作为数值列的平均值。 seaborn 的 catplot 中的 hue 参数只接受分类值,所以我不能使用它。

还有其他方法可以绘制吗?

【问题讨论】:

    标签: python graph seaborn data-visualization


    【解决方案1】:

    Seaborn 更喜欢 "long form" 中的数据。您可以使用df.melt(id_vars='category') 转换数据框。

    这是一个例子:

    import matplotlib.pyplot as plt
    import seaborn as sns
    import pandas as pd
    import numpy as np
    
    sns.set()
    df = pd.DataFrame({'category': np.random.choice([*'abcdefg'], 100),
                       'sales': np.random.randint(1000, 2000, 100),
                       'profit': np.random.randint(100, 200, 100)})
    long_df = df.melt(id_vars='category')
    sns.barplot(data=long_df, x='category', y='value', hue='variable', order=[*'abcdefg'], ci=None)
    plt.show()
    

    如果您确实需要指示置信区间的误差线,请忽略 ci=None

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      相关资源
      最近更新 更多