【问题标题】:python plotting a dataframepython绘制数据框
【发布时间】:2016-12-12 10:52:08
【问题描述】:

我有一个 Python 中的 pandas 数据框,如下所示:

  Jan 15   Feb 15   March 15   April 15
1   val      val      val       val
2   val      val      val       val 
3   val      val      val       nan
4   val      nan      val       nan
5   val      nan      nan       nan

我想绘制如下图。 X 轴是月份(Jan 15 | Feb 15 | March 15 | April 15),条形如下:

Jan 15: 5
Feb 15: 3
March 15: 4
April 15: 2

^ 这是每个月非空值的计数。

关于如何使用 matplotlib 或其他任何东西绘制它的任何帮助?

编辑:df中的值是这样的元组:(val1, val2)

【问题讨论】:

    标签: python pandas matplotlib plot


    【解决方案1】:

    你需要countSeries.plot.bar

    import matplotlib.pyplot as plt
    df.count().plot.bar()
    plt.show()
    

    Series.plot 的解决方案:

    import matplotlib.pyplot as plt
    df.count().plot(kind='bar')
    plt.show()
    

    【讨论】:

    • 有什么方法可以制作标签云吗?例如,不是用图表,而是在标签云中绘制月份,最大的字体飞蛾将是数据最多的那一个?
    • 嗯,在 pandas 中这是不可能的,我不确定是否在 matplotlib 中。我找到了this solution,试试看。
    【解决方案2】:

    这将返回一个包含您要绘制的数据的系列:

    df.count()
    

    这将绘制它:

    df.count().plot.bar();  # the semicolon will suppress output in Jupyter
    

    编辑:将其制成条形图。

    【讨论】:

    • 如何绘制图表?它打印:<matplotlib.axes._subplots.AxesSubplot at 0x20e3fbc8ef0>
    • 我假设你在 Jupyter 中。您必须通过运行%matplotlib inline 一次来启用内联图表。
    • import matplotlib.pyplot as plt。然后在 df.count().plot() 之后添加plt.show()。如果你使用的是 jupyter notebook,你也可以使用魔法%matplotlib inline。 @IanS:在你的剧情调用中添加kind='bar'
    • df.count().plot(kind='bar', stacked=True) 是另一种语法。堆叠的论点也值得了解。
    • 据我所知,除了带有matplotlib inline 的 jupyter notebook 之外的任何其他地方。我养成了总是包含它的习惯。当您在不捕获轴的情况下进行绘图时,它还会降低一组轴的经典输出
    猜你喜欢
    • 1970-01-01
    • 2015-09-29
    • 2021-11-07
    • 2023-03-29
    • 2016-01-07
    • 1970-01-01
    • 2021-06-09
    • 2022-01-08
    • 2016-01-14
    相关资源
    最近更新 更多