matplotlib饼状图 作者:马育民 • 2024-11-14 14:29 • 阅读:10007 # 说明 绘制图表如下所示: [![](https://www.malaoshi.top/upload/0/0/1GW2Tx2vu5e.png)](https://www.malaoshi.top/upload/0/0/1GW2Tx2vu5e.png) ### api [官方API](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.pie.html "官方API") ``` matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, rotatelabels=False, *, normalize=True, hatch=None, data=None) ``` ##### 参数说明: - **x**:浮点型数组或列表,用于绘制饼图的数据,表示每个扇形的面积。 - explode:数组,表示各个扇形之间的间隔,默认值为0。 - **labels**:列表,各个扇形的标签,默认值为 None。 - colors:数组,表示各个扇形的颜色,默认值为 None。 - **autopct**:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比。 - labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 `<1`则绘制在饼图内侧。 - pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。 - shadow::布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。 - radius::设置饼图的半径,默认为 1。 - startangle::用于指定饼图的起始角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。 - counterclock:布尔值,用于指定是否逆时针绘制扇形,默认为 True,即逆时针绘制,False 为顺时针。 - wedgeprops :字典类型,默认值 None。用于指定扇形的属性,比如边框线颜色、边框线宽度等。例如:wedgeprops={'linewidth':5} 设置 wedge 线宽为5。 - textprops :字典类型,用于指定文本标签的属性,比如字体大小、字体颜色等,默认值为 None。 - center :浮点类型的列表,用于指定饼图的中心位置,默认值:(0,0)。 - frame :布尔类型,用于指定是否绘制饼图的边框,默认值:False。如果是 True,绘制带有表的轴框架。 - rotatelabels :布尔类型,用于指定是否旋转文本标签,默认为 False。如果为 True,旋转每个 label 到指定的角度。 # 例子 ``` import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['MicroSoft YaHei'] # 数据 datas = [1048, 735, 580, 484, 300] # 标签 labels = ['搜索引擎', '直接访问', '微信', '开屏广告', '视频广告'] # 设置颜色 colors = ['#5470c6', '#9fe080', '#ffdc60', '#ff7070', '#79cbeb'] # 显示百分比 autopct = '%d%%' # 设置间隔 explode = [0.1, 0, 0, 0, 0.05] # autopct = '%0.2f%%' # 绘制饼状图,x轴是小时,y轴是温度 plt.pie(datas, labels=labels, colors=colors, explode=explode, autopct=autopct) plt.title("访问网站来源分析") # 显示图 plt.show() ``` # 设置标签大小、颜色 [![](https://malaoshi.top/upload/0/0/1GW2qAwg9cl.png)](https://malaoshi.top/upload/0/0/1GW2qAwg9cl.png) ``` import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['Microsoft YaHei'] y = [1048, 735, 580, 484, 300] x = ['搜索引擎', '通过网址访问', '微信', '开屏广告', '视频广告'] colors = ['#5c7bd9', '#91cc75', '#fed95f','#ff7070','#7ed3f4'] textprops={ 'color': 'b', # 设置标签颜色为蓝色 'fontsize': 20, # 设置标签大小为20 } plt.pie(y, labels=x, colors=colors, radius=1, textprops=textprops) # 显示窗口,必须写 plt.show() ``` 参考: https://www.runoob.com/matplotlib/matplotlib-pie.html 原文出处:http://malaoshi.top/show_1GW2U25NSWB.html