【问题标题】:How to output a large number of histograms in a pandas groupby如何在熊猫groupby中输出大量直方图
【发布时间】:2015-07-30 03:35:14
【问题描述】:

df 是一个包含天数列的数据框。有100天。我想查看 100 天中每一天的数据列的直方图。问题是此代码在单个图表上输出所有内容,并且所有直方图都堆叠在一起。两个问题:

  1. 有什么建议可以每天获取一个直方图吗?
  2. 有什么建议可以将每个直方图保存到适当命名的文件中?

注意:当我将下面代码中的 hist 替换为 describe 时,它完美地为我提供了 100 个描述系列。另外,grouper.get_group(days) 对象的类型是pandas.series

我的简单代码:

grouper = df.groupby('days')['data']

for days in grouper.groups.keys():
    print grouper.get_group(days).hist()

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    一种选择是在ipython qtconsoleipython notebook 中使用内联绘图:

    %matplotlib inline
    import matplotlib.pyplot as plt
    
    for days in grouper.groups.keys():
        grouper.get_group(days).hist()
        plt.show()
    

    【讨论】:

    • 作为奖励,我已经用plt.savefig('name of my choice %s.png' % days 替换了plt.show() 行,它向我显示了一个堆叠直方图,随着时间的推移,它包括一天的堆叠直方图。 .. 如何保存每个直方图?我以为savefig 会成功,但事实并非如此。
    • 您可能需要在每次循环中“重置绘图”,也许在每个循环开始时添加 ax=plt.axes() 就可以了?
    【解决方案2】:

    其实,如果你使用的是Ipython notebook,你可以这样做:

    df.groupby('days')['data'].hist()
    

    任何添加到 groupby 末尾的函数都将并行触发所有组,这就是 groupby 函数的优势。

    无需重复

    【讨论】:

    • 不起作用。我得到一个堆叠的直方图,每天只有一种颜色......不是我要找的。​​span>
    • @user3659451 我一定误解了你想要什么。也许您可以在您的问题中添加一些图片示例来显示您的目标?
    • 如果您遇到类似情况,请尝试两个答案之间的差异。它们与我描述的方式不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2017-12-31
    • 2018-07-05
    相关资源
    最近更新 更多