使用matplotlib将Pandas DataFrame绘制到饼图中

Nil*_*age 5 matplotlib dataframe pandas pie-chart

是否可以DataFrame使用matplotlib 打印饼图?有关于绘制许多图表类型的说明,包括条形图,直方图,散点图等.但饼图丢失了吗?

cmg*_*ber 8

熊猫有这个内置的pd.DataFrame.plot().您所要做的就是使用kind='pie'flag并告诉它您想要哪个列(或用于subplots=True获取所有列).这将自动为您添加标签,甚至也可以执行百分比标签.

import matplotlib.pyplot as plt

df.Data.plot(kind='pie')
Run Code Online (Sandbox Code Playgroud)

为了使其更加自定义,您可以这样做:

fig = plt.figure(figsize=(6,6), dpi=200)
ax = plt.subplot(111)

df.Data.plot(kind='pie', ax=ax, autopct='%1.1f%%', startangle=270, fontsize=17)
Run Code Online (Sandbox Code Playgroud)

你告诉DataFrame那个的地方ax=ax.您还可以使用matplotlib plt.pie()如上所示的所有常规标志.


use*_*737 8

要从数据框中绘制饼图,df您可以使用 Panda 的plot.pie

df.plot.pie(y='column_name')
Run Code Online (Sandbox Code Playgroud)

例子:

import pandas as pd

df = pd.DataFrame({'activity': ['Work', 'Sleep', 'Play'],
                   'hours': [8, 10, 6]})
df.set_index('activity', inplace=True)
print(df)
#               hours
# activity       
# Work          8
# Sleep        10
# Play          6
plot = df.plot.pie(y='hours', figsize=(7, 7))
Run Code Online (Sandbox Code Playgroud)

请注意,饼图的标签是索引条目,这就是使用set_index将索引设置为 的原因activity

要设置绘图样式,您可以使用所有可以传递给DataFrame.plot() 的参数,这里是一个显示百分比的示例:

plot = df.plot.pie(y='hours', title="Title", legend=False, \
                   autopct='%1.1f%%', explode=(0, 0, 0.1), \
                   shadow=True, startangle=0)
Run Code Online (Sandbox Code Playgroud)

来自 Pandas 数据框的饼图

  • 有趣的是,你的是唯一一个有图像的。它还突出显示了其他有用的参数。这应该是最好的答案。 (2认同)

Dan*_*lan 5

import matplotlib.pyplot as plt
plt.pie(DataFrame([1,2,3]))
Run Code Online (Sandbox Code Playgroud)

似乎按预期工作.如果DataFrame有多个列,它将会引发.