菜鸟编程:python中使用matplotlib绘制饼状图

python中使用matplotlib绘制饼状图,常用的参数如下:
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False)

x:指定绘图的数据;

explode:指定饼图某些部分的突出显示,即呈现爆炸式;

labels:为饼图添加标签说明,类似于图例说明;

colors:指定饼图的填充色;

autopct:自动添加百分比显示,可以采用格式化的方法显示,可设置保留几位小数;

pctdistance:设置百分比标签与圆心的距离;

shadow:是否添加饼图的阴影效果;

labeldistance:设置各扇形标签(图例)与圆心的距离;

startangle:设置饼图的初始摆放角度;

radius:设置饼图的半径大小;

counterclock:是否让饼图按逆时针顺序呈现;

wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等;

textprops:设置饼图中文本的属性,如字体大小、颜色等;

center:指定饼图的中心点位置,默认为原点

frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置;
实例1:
将下图数据绘制为饼状图。
菜鸟编程:python中使用matplotlib绘制饼状图_第1张图片

import matplotlib.pyplot as plt
from pylab import *

mpl.rcParams['font.sans-serif'] = ['SimHei']    # 显示中文字体
name = ["提高劳动效率", "提高生活质量", "有利于社会安定、生活安全", "丰富娱乐生活", "其他"]     # 饼状图标签
data = [84, 79, 46, 62, 1]      # 各项的数据,与name一一对应
lt = []     # 建立空列表,用于存放计算结果
for i in range(len(data)):      # 遍历data,每遍历一个数据进行一次运算
    result = data[i] / sum(data)
    # print(result)

    lt.append(result)       # 将计算结果一次添加到lt中
    # print(lt)
print(lt)
plt.axes(aspect=1)
plt.pie(x=lt, autopct='%1.2f%%')       # x表示饼状图的数据,autopct后面的值1.2表示保留2位小数,1.1表示保留一位小数
plt.legend(name, loc="best")        # 绘制图的图例为name,位置为最佳
plt.title("人工智能对生活的影响")     # 饼图的名称
plt.show()

运行结果如下,字体以及图例的位置可自行进行调整。
菜鸟编程:python中使用matplotlib绘制饼状图_第2张图片
实例2:
对上面程序添加一些饼图的参数,例如阴影、饼图分离等。
数据如下:
菜鸟编程:python中使用matplotlib绘制饼状图_第3张图片
代码实现:

import matplotlib.pylab as plt
from pylab import *

mpl.rcParams['font.sans-serif'] = ['SimHei']    # 显示中文字体
name = ["博士", "硕士", "本科", "大专", "高中/中专"]
data = [15, 28, 37, 6]
lt = []
for i in range(len(data)):
    result = data[i]/sum(data)
    lt.append(result)
explode = (0, 0.2, 0, 0)    # 设置饼图分离
plt.pie(x=lt, autopct='%1.3f%%', pctdistance=1.3, explode=explode, shadow=True)
# 设置保留三位小数,设置百分比距离圆心距离1.3,设置饼图分离,设置阴影

plt.legend(name, loc="best")
plt.title("目前最高学历")
plt.show()

运行结果:
菜鸟编程:python中使用matplotlib绘制饼状图_第4张图片
可以提供一些统计数据,给大家自行练习。
菜鸟编程:python中使用matplotlib绘制饼状图_第5张图片
菜鸟编程:python中使用matplotlib绘制饼状图_第6张图片
最后给大家提供一个自动生成饼状图的代码,提供一个模板,如果需要生成饼状图,只需要把需要的数据输入进去,即可生成。

import matplotlib.pylab as plt
import matplotlib


def get_datas():
    labels = []
    datas = []
    print('if label== +,exit')
    while True:
        label = input("Input label>>>")
        if label == '+':
            break
        data = eval(input("Input data>>>"))
        labels.append(label)
        datas.append(data)
    sumofdata = sum(datas)
    for i in range(len(datas)):
        result = datas[i] / sumofdata
        return labels, datas


def get_title():
    print('Input title>>>')


if __name__ == '__main__':
    fig = plt.figure()
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 字体
    title = get_title()
    plt.title(title)

    labels, datas = get_datas()
    plt.pie(x=datas, labels=labels, autopct='%1.2f%%')
    plt.legend(labels, loc='best')
    plt.show()


随便输入数据生成结果:
运行后,按照要求输入数据及标签
菜鸟编程:python中使用matplotlib绘制饼状图_第7张图片
输入完成后,输入“+”退出,即会生成下图饼状图。
菜鸟编程:python中使用matplotlib绘制饼状图_第8张图片

你可能感兴趣的:(Python初学,python,可视化)