是否有可能使用matplotlib将DataFrame
打印为饼图? Pandas文档中的图表可视化说明了许多图表类型,包括条形图、直方图、散点图等。但饼图却不见了?
是否有可能使用matplotlib将DataFrame
打印为饼图? Pandas文档中的图表可视化说明了许多图表类型,包括条形图、直方图、散点图等。但饼图却不见了?
要从数据框 df
绘制饼图,您可以使用Pandas的plot.pie
:
df.plot.pie(y='column_name')
例子:
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))
请注意,饼图的标签是索引条目,这就是使用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)
pd.DataFrame.plot()
方法用于绘制图表。你只需要使用kind='pie'
参数并指定需要绘制饼图的列(或使用subplots=True
来绘制所有列),它会自动为你添加标签,甚至还会添加百分比标签。import matplotlib.pyplot as plt
df.Data.plot(kind='pie')
为了使其更加可自定义,您可以这样做:
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)
当您告诉DataFrame
使用ax=ax
时,您还可以像上面展示的那样使用所有常规的matplotlib plt.pie()
标志。
import matplotlib.pyplot as plt
plt.pie(DataFrame([1,2,3]))
看起来按预期工作。如果DataFrame有多列,则会引发错误。