Python 饼图/显示多个列的组合
Python pie chart / Show several columns combined
我有包含 2 列的数据框:
Col1- 经理姓名
Col2 - 他们的利润
我想绘制一个饼图,在其中我可以分别显示最赚钱的 5 位经理,其他人在一个切片中显示为 'others'
怎么样:
使用 autopct 参数自动标记饼图。
import pandas as pd
import matplotlib.pyplot as plt
data = {'managers':['mike1','mike2','mike3','mike4','mike5','mike6','mike7'],
'profit':[110,60,40,30,10,5,5],
}
df = pd.DataFrame(data)
df = df.sort_values(by = 'profit', ascending = False)
top_5 = df.iloc[:5]
others = df.iloc[5:]['profit'].sum()
df2 = pd.DataFrame([['others',others]], columns = ['managers','profit'])
all_data = top_5.append(df2, ignore_index=True)
all_data.index = all_data['managers']
#func to lable the pieces
def auto_func(val):
return(round(val))
all_data.plot.pie(y = 'profit', autopct = auto_func)
# ax = plt.gca()
plt.show()
我有包含 2 列的数据框:
Col1- 经理姓名
Col2 - 他们的利润
我想绘制一个饼图,在其中我可以分别显示最赚钱的 5 位经理,其他人在一个切片中显示为 'others'
怎么样: 使用 autopct 参数自动标记饼图。
import pandas as pd
import matplotlib.pyplot as plt
data = {'managers':['mike1','mike2','mike3','mike4','mike5','mike6','mike7'],
'profit':[110,60,40,30,10,5,5],
}
df = pd.DataFrame(data)
df = df.sort_values(by = 'profit', ascending = False)
top_5 = df.iloc[:5]
others = df.iloc[5:]['profit'].sum()
df2 = pd.DataFrame([['others',others]], columns = ['managers','profit'])
all_data = top_5.append(df2, ignore_index=True)
all_data.index = all_data['managers']
#func to lable the pieces
def auto_func(val):
return(round(val))
all_data.plot.pie(y = 'profit', autopct = auto_func)
# ax = plt.gca()
plt.show()