【问题标题】:How to draw stacked histogram in pandas如何在熊猫中绘制堆叠直方图
【发布时间】:2015-05-02 12:23:15
【问题描述】:

我在 pandas 中有这些数据:

        fork  percentage_remains
0      True            20.000000
1      False            9.090909
2      False            2.000000
3      False            0.000000
4      False            0.000000
5      True            33.333333
6      False           20.000000
...

我想绘制堆叠直方图,其中 x 轴上为 percentage_remains,y 轴上为 degree(这意味着此 bin 中的项目数),它将按 fork 分组- 同一图中的两个堆叠直方图,其中第一个直方图适用于所有带有fork == True 的值,第二个直方图适用于所有带有fork == False 的值。我正在尝试:

subset.plot(kind="hist", stacked=True, by="fork")

但它创建了这个图像:,从这个直方图中的标签和值看来,这实际上并没有按“fork”属性分组。

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    这样的事情呢

    import matplotlib.pyplot as plt
    subset = pd.DataFrame({'fork': {0: True, 1: False, 2: False, 3: False, 4: False, 5: True, 6: False},
     'percentage_remains': {0: 20.0,
      1: 9.0909089999999999,
      2: 2.0,
      3: 0.0,
      4: 0.0,
      5: 33.333333000000003,
      6: 20.0}})
    

    通过布尔索引过滤 fork == True

    filter = subset["fork"] == True`
    

    然后直接使用matplotlib。注意我传递了一个列表,一个元素是真值,另一个是假值

        plt.hist([subset["percentage_remains"][filter],subset["percentage_remains"][~filter]],
                                                       stacked=True)
            plt.show()
    

    【讨论】:

    • 我希望只使用 pandas 的工具,但这可以解决问题。谢谢!
    猜你喜欢
    • 2020-02-04
    • 2019-08-19
    • 2018-07-05
    • 2020-10-10
    • 2011-01-25
    • 2017-09-24
    • 2017-08-21
    • 2020-03-02
    • 2014-03-12
    相关资源
    最近更新 更多