Nil*_*age 5 matplotlib dataframe pandas pie-chart
是否可以DataFrame使用matplotlib 打印饼图?这有关于绘制许多图表类型的说明,包括条形图,直方图,散点图等.但饼图丢失了吗?
熊猫有这个内置的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()如上所示的所有常规标志.
要从数据框中绘制饼图,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)
import matplotlib.pyplot as plt
plt.pie(DataFrame([1,2,3]))
Run Code Online (Sandbox Code Playgroud)
似乎按预期工作.如果DataFrame有多个列,它将会引发.