如何绘制饼图?
how to plot a pie chart?
我有这样的数据:
Machine_id Cycling Idle
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
在 pandas 中每个 Machine_id
明智的饼图是如何形成的?
您的问题已解决:
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
我有这样的数据:
Machine_id Cycling Idle
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
在 pandas 中每个 Machine_id
明智的饼图是如何形成的?
您的问题已解决:
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