代码之家  ›  专栏  ›  技术社区  ›  anotherone

分类数据和数值数据的Pandas条形图

  •  1
  • anotherone  · 技术社区  · 8 年前

    我有一个名为“data”的pandas数据框,其数据类似于下表。我想用python将它们绘制成条形图。

    Name    X   Y   Z   Activity
    AAA1    0.0 0.0 2.0 Low
    AAA2    0.0 2.0 6.0 Medium
    AAA3    1.0 2.0 3.0 High
    AAA4    2.0 1.0 4.0 High
    

    我尝试的是,用一点颜色和风格,

    sns.set(style="white", context="talk", palette="husl")
    data.plot.bar(x='Name', width=.8)
    

    虽然这将绘制一个条形图,显示每个名称的X、Y和Z(总共9个条形图),但我无法找到显示对应于条形图中每个“名称”的“活动”的方法。如果我能以某种方式在条形图的顶部以图形的方式显示这个分类列,无论是按颜色还是按某种样式,都会很好。我使用Python3.7.0 熊猫0.23.3, matplotlib 2.2.2和 seaborn版本0.9.0。

    1 回复  |  直到 8 年前
        1
  •  1
  •   RobJan    8 年前

    我不知道这个解决方案是否适合你,但首先我按 活动 姓名 然后绘制条形图。示例(我得到您的数据帧):

    import matplotlib.pyplot as plt
    
    df.groupby(['Activity','Name']).sum().plot(kind='bar')
    

    结果呢 Barplot