嘿,大家好!今天我要带你们探索一个有趣的话题:使用matplotlib库绘制饼状图。虽然这听起来可能有些复杂,但我会用轻松幽默的语言给大家讲解!准备好了吗?让我们开始吧!
首先,我们需要导入一些数据。假设我们有一份成绩表,保存在名为"成绩表2.xlsx"的Excel文件中。为了读取这个文件,我们可以使用pandas库,代码如下:
import pandas as pd
df = pd.read_excel('d:\data\成绩表2.xlsx')
好了,数据导入成功!接下来,我们想要让图表中的中文标签正常显示。为了实现这个目标,我们需要引入字体管理器并设置字体为宋体(Songti SC),代码如下:
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Songti SC']
现在,我们已经准备好开始制作饼状图了!主要的绘图函数是plt.pie(),它接受几个参数来定义图表的样式和内容。
首先,我们需要提供绘图所需的数据。假设我们要绘制每个人语文成绩的比例,那么我们可以使用成绩表中的"语文"列作为数据,代码如下:
x = df['语文']
接下来,我们可以使用每个人的姓名作为图表中每块的文字标签,代码如下:
labels = df['姓名']
为了让饼状图更加丰富多彩,我们可以为每块图形设置不同的颜色。比如,我们可以使用红色、绿色和蓝色分别表示不同的人,代码如下:
colors = ['r', 'g', 'b']
好了,我们准备就绪,现在让我们把这些内容放在一起绘制出饼状图吧!
plt.pie(x, labels=labels, colors=colors)
plt.show()
import pandas as pd
df = pd.read_excel('d:\data\成绩表2.xlsx')
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
x = df['语文']
labels = df['姓名']
colors = ['r', 'g', 'b']
plt.pie(x, labels=labels, colors=colors)
plt.show()
咦?出现了一个饼状图,上面有几个扇形区域代表每个人的成绩比例。看起来很酷,对吧?
如果我们想要让某一块扇形区域脱颖而出,可以使用explode参数来设置偏移的距离。比如,我们想要让"李四"这个人的成绩在图表上突出显示,可以这样做:
explode = (0, 0.3, 0) # 第二个人的扇形区域偏移出去
plt.pie(x, labels=labels, colors=colors, explode=explode)
plt.show()
哇!现在"李四"的成绩突出显示了,看起来非常抢眼!
接下来,我们可以添加一个图例,让读者更清楚地了解每个扇形区域代表的是谁。我们可以使用legend()函数来实现这个目标。
plt.legend(labels, bbox_to_anchor=(0.3, 1), ncol=3, borderaxespad=1)
嘿,现在图表上多了一个漂亮的图例,告诉大家是谁的成绩在图表中呈现。而且,我们把图例放在了一个好位置,不会挡住我们的饼状图。
接下来,如果我们想要显示百分比,并且只保留一位小数,我们可以使用autopct参数来实现。
plt.pie(x, labels=labels, colors=colors, explode=explode, autopct='%.1f%%')
好了,现在每个扇形区域都显示了百分比,并且只保留了一位小数。看起来更加直观了吧!
最后,如果你希望给饼状图增加一些立体感,可以使用shadow参数来添加阴影效果。
plt.pie(x, labels=labels, colors=colors, explode=explode, autopct='%.1f%%', shadow=True)
哇塞!现在我们的饼状图更加立体了,就像是真实的一样。太酷了!
import pandas as pd
df = pd.read_excel('d:\data\成绩表2.xlsx')
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Simhei']
x = df['语文']
labels = df['姓名']
colors = ['r', 'g', 'b']
explode = (0, 0.3, 0) # 第二个人的扇形区域偏移出去
plt.pie(x, labels=labels, colors=colors, explode=explode, autopct='%.1f%%')
#plt.pie(x, labels=labels, colors=colors, explode=explode, autopct='%.1f%%', shadow=True)
plt.legend(labels, bbox_to_anchor=(0.3, 1), ncol=3, borderaxespad=1)
plt.show()
好了,今天的饼状图绘制教程就到这里了。希望大家通过这个例子能够轻松地理解如何使用matplotlib库来制作饼状图。记住,图表可以很有趣,而且可以用来展示数据的美丽一面。
就到这里,如果你觉得文章对你有用,记得关注,后面还会分享其他有用的教程!