【问题标题】:Pie and bar charts in PythonPython 中的饼图和条形图
【发布时间】:2017-07-05 06:15:22
【问题描述】:

我有一个如下所示的熊猫数据框:

Group    id    Count
G1        412   52
G1        413   34
G2        412   2832
G2        413   314

我正在尝试用 Python 构建一个饼图——对于每个 Group 和 id,我需要显示各自的计数。它应该有两个拆分 - 一个用于 Group,另一个用于 Id。外圈应该是 Group,内圈应该是 id。刚开始可视化,想知道是否有python库可以做到这一点。

这个要求是用条形图来实现的吗?

【问题讨论】:

  • 我不这么认为。对于 Group 的每个切片,应该有两个切片。例如,让饼图中的第一个切片为 G1,里面应该有两个子切片,一个用于 412,另一个用于 413。

标签: python pandas visualization


【解决方案1】:

你检查过plotly吗?

饼图专用:Pie Charts with Plotly

我会说你确实必须创建一个帐户,但它免费且容易。

【讨论】:

    【解决方案2】:

    panda还集成了matplotlib,虽然有点丑但是很方便。 http://pandas.pydata.org/pandas-docs/stable/visualization.html#pie-plot

    一些复杂的例子 Hierarchic pie/donut chart from Pandas DataFrame using bokeh or matplotlib

    我的经验是,如果你想用python制作一个基本的DIY图表,你必须做很多配置。也许对您来说最好的方法是以下选择之一: 1)如果数据不敏感,请尝试绘图 2)使用excel,将python与excel中的图表集成,可以为大家节省很多时间,因为人们可以很容易地熟悉excel图表模板。 3) 自己DIY,目前,如果你只是想做一些简单的事情,Bokeh、matplotlib、seaborn 都在你的考虑范围内。

    【讨论】:

      【解决方案3】:

      如果您使用pyexcelpyexcel-pygal,则需要满足以下条件:

      >>> import pyexcel as p
      >>> sheet = p.get_sheet(file_name='test.csv', delimiter='\t')
      >>> sheet
      test.csv:
      +-------+-----+-------+
      | Group | id  | Count |
      +-------+-----+-------+
      | G1    | 412 | 52    |
      +-------+-----+-------+
      | G1    | 413 | 34    |
      +-------+-----+-------+
      | G2    | 412 | 2832  |
      +-------+-----+-------+
      | G2    | 413 | 314   |
      +-------+-----+-------+
      >>> sheet.transpose()
      >>> sheet
      test.csv:
      +-------+-----+-----+------+-----+
      | Group | G1  | G1  | G2   | G2  |
      +-------+-----+-----+------+-----+
      | id    | 412 | 413 | 412  | 413 |
      +-------+-----+-----+------+-----+
      | Count | 52  | 34  | 2832 | 314 |
      +-------+-----+-----+------+-----+
      >>> sheet.name_rows_by_column(0)
      >>> sheet.row['Group']
      ['G1', 'G1', 'G2', 'G2']
      >>> p.save_as(array=[sheet.row['Group'], sheet.row['Count']], dest_chart_type='pie', dest_file_name='group_pie.svg')
      

      >>> p.save_as(array=[sheet.row['id'], sheet.row['Count']], dest_chart_type='pie', dest_file_name='id_pie.svg')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-02
        相关资源
        最近更新 更多