【问题标题】:how to plot a pie chart?如何绘制饼图?
【发布时间】:2019-01-03 03:22:27
【问题描述】:

我有如下数据:

Machine_id 循环空闲
81091001 41000000000 19000000000
81091001 40000000000 19000000000
81091001 41000000000 19000000000
81091001 41000000000 20000000000
81091001 41000000000 19000000000

绘制饼图的代码:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(palette='Paired')

df = pd.read_csv('sample1.csv')

df = df.set_index('Machine_id')

for ind in df.index:
     fig, ax = plt.subplots(1,1)
     fig.set_size_inches(5,5)
     df.iloc[ind].plot(kind='pie', ax=ax, autopct='%1.1f%%')
     ax.set_ylabel('')
     ax.set_xlabel('')

我在这里遇到错误,例如:

IndexError: single positional indexer is out-of-bounds

那么如何为Cycling v/s Idle in pandas each Machine_id 形成饼图呢?

【问题讨论】:

    标签: python pandas pie-chart


    【解决方案1】:

    你的问题解决了:

    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    sns.set(palette='Paired')
    
    df = pd.read_csv('sample1.csv')
    
    #df = df.set_index('Machine_id')  comment this
    
    for ind in df.index:
         fig, ax = plt.subplots(1,1)
         fig.set_size_inches(5,5)
         df.iloc[ind].plot(kind='pie', ax=ax, autopct='%1.1f%%')
         ax.set_ylabel('')
         ax.set_xlabel('')
         fig.show()   #plot/show final results
    

    另一种方式,考虑具有每行循环和空闲时间的单个图表。每条线的饼图。 (也许饼图不是说明这一点的最佳方式,但无论如何)

    参考。 https://matplotlib.org/api/pyplot_api.html

    import csv as csv
    import matplotlib.pyplot as plt
    
    colors = ['r', 'g']
    
    with open('sample1.csv') as csvfile:
        readCSV = csv.reader(csvfile, delimiter=',')
    
        i = 0
    
        for row in readCSV:
            if i == 0:
                activities = [row[1], row[2]]
                title = row[0]
            else:
                slices = [row[1], row[2]]
                plt.title("Machine ID: " + row[0])  #title is here UPDATED
                plt.pie(slices, labels=activities, colors=colors, startangle=90, autopct='%.1f%%')
                plt.show()
    
            i += 1
    

    【讨论】:

    猜你喜欢
    • 2014-05-12
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    相关资源
    最近更新 更多