首页 文章详情

谁说matplotlib做不出好看的可视化

简说Python | 209 2022-01-04 06:11 0 0 0
UniSMS (合一短信)

👆👆👆关注我,和老表一起学Python、云服务器

2021年终总结(含福利)

大家好,我是老表,今天给大家分享一篇由哈佛在等我呢投稿,主要是对matplotlib绘制柱状图和饼图的美化,看完你会发现,matplotlib虽然不能像pyecharts、bokeh等绘制出很精美的图,甚至是可交互的可视化图,但是通过配色、基础设置,我们也能用matplotlib绘制出好看、简单的可视化图。

收藏+点赞,转发更有爱,元旦快乐。

首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具。

如果你还没有安装,可以参考以下文章:

如果仅用Python来处理数据、爬虫、数据分析或者自动化脚本、机器学习等,建议使用Python基础环境+jupyter即可,安装使用参考Windows/Mac 安装、使用Python环境+jupyter notebook

如果想利用Python进行web项目开发等,建议使用Python基础环境+Pycharm,安装使用参考:Windows下安装、使用Pycharm教程,这下全了 和 Mac下玩转Python-安装&使用Python/PyCharm 。

本文相关源码和字体,我都已经上传到了百度云,大家在微信公众号简说编程回复:代码,即可获取下载地址。

点击,关注简说编程,回复:代码

  • 纵向柱形图(按升序排列)

  • 纵向柱形图(类别与数据标签反转,按降序排列)

  • 纵向柱形图(类别与数据标签反转,按降序排列,颜色编码也反转)

  • 给纵向柱形图添加网格线

  • 横向柱形图

  • 默认生成的饼图

  • 自定义配色的饼图

  • 调整角度的饼图

  • 调整角度让标签可以在内部不重叠显示的饼图

  • 炸裂出来的饼图

纵向柱形图(按升序排列)

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (12,6),dpi = 1000)
data = [100130169220286372484629818106313821797]
labels = ["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"]

# 数据顺序反转
# data.reverse()
# 标签顺序反转
# labels.reverse()

N = 12
x = np.arange(N)

# 自定义每根柱子的颜色
colors = ["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]
# 颜色顺序反转
# colors.reverse()
# 绘制纵向柱形图
plt.bar(range(len(data)), data, tick_label=labels,color = colors)

# plt.barh(range(len(data)), data, tick_label=labels,color = colors)
# 添加大标题
plt.title("2021年各月份销售业绩(万元)",fontsize=20,**Fs) 

# 给X轴定义标签
# plt.xlabel("月份",fontsize=15)

# 给Y轴定义标签
# plt.ylabel("销售额(万元)",fontsize=15)

# 依次给每根柱子添加数据标签,并把字体设置为新罗马体(教科书、论文的数字、公式一般都用新罗马体)
for i,j in zip(x, data):
    plt.text(i, j+0.05'%.0f' % j, ha='center', va= 'bottom',fontsize=15,**TNR)

# 为了美观,不显示画布的黑色边框
[axes.spines[loc_axis].set_visible(Falsefor loc_axis in ['top','right','bottom','left']]

# 不显示Y轴坐标
axes.set_yticks([])

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg", format="png")

# 绘图
plt.show()
<Figure size 864x432 with 0 Axes>

纵向柱形图(类别与数据标签反转,按降序排列)

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (12,6),dpi = 1000)
data = [100130169220286372484629818106313821797]
labels = ["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"]

# 数据顺序反转
data.reverse()
# 标签顺序反转
labels.reverse()

N = 12
x = np.arange(N)

# 自定义每根柱子的颜色
colors = ["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]
# 颜色顺序反转
# colors.reverse()
# 绘制纵向柱形图
plt.bar(range(len(data)), data, tick_label=labels,color = colors)

# plt.barh(range(len(data)), data, tick_label=labels,color = colors)
# 添加大标题
plt.title("2021年各月份销售业绩(万元)",fontsize=20,**Fs) 

# 给X轴定义标签
# plt.xlabel("月份",fontsize=15)

# 给Y轴定义标签
# plt.ylabel("销售额(万元)",fontsize=15)

# 依次给每根柱子添加数据标签,并把字体设置为新罗马体(教科书、论文的数字、公式一般都用新罗马体)
for i,j in zip(x, data):
    plt.text(i, j+0.05'%.0f' % j, ha='center', va= 'bottom',fontsize=15,**TNR)

# 为了美观,不显示画布的黑色边框
[axes.spines[loc_axis].set_visible(Falsefor loc_axis in ['top','right','bottom','left']]

# 不显示Y轴坐标
axes.set_yticks([])

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg", format="png")

# 绘图
plt.show()
<Figure size 864x432 with 0 Axes>

纵向柱形图(类别与数据标签反转,按降序排列,颜色编码也反转)

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (12,6),dpi = 1000)
data = [100130169220286372484629818106313821797]
labels = ["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"]

# 数据顺序反转
data.reverse()
# 标签顺序反转
labels.reverse()

N = 12
x = np.arange(N)

# 自定义每根柱子的颜色
colors = ["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]
# 颜色顺序反转
colors.reverse()
# 绘制纵向柱形图
plt.bar(range(len(data)), data, tick_label=labels,color = colors)

# plt.barh(range(len(data)), data, tick_label=labels,color = colors)
# 添加大标题
plt.title("2021年各月份销售业绩(万元)",fontsize=20,**Fs) 

# 给X轴定义标签
# plt.xlabel("月份",fontsize=15)

# 给Y轴定义标签
# plt.ylabel("销售额(万元)",fontsize=15)

# 依次给每根柱子添加数据标签,并把字体设置为新罗马体(教科书、论文的数字、公式一般都用新罗马体)
for i,j in zip(x, data):
    plt.text(i, j+0.05'%.0f' % j, ha='center', va= 'bottom',fontsize=15,**TNR)

# 为了美观,不显示画布的黑色边框
[axes.spines[loc_axis].set_visible(Falsefor loc_axis in ['top','right','bottom','left']]

# 不显示Y轴坐标
axes.set_yticks([])

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg", format="png")

# 绘图
plt.show()
<Figure size 864x432 with 0 Axes>

给纵向柱形图添加网格线

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (12,6),dpi = 1000)
data = [100130169220286372484629818106313821797]
labels = ["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"]

# 数据顺序反转
# data.reverse()
# 标签顺序反转
# labels.reverse()

N = 12
x = np.arange(N)

# 自定义每根柱子的颜色
colors = ["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]
# 颜色顺序反转
# colors.reverse()
# 绘制纵向柱形图
plt.bar(range(len(data)), data, tick_label=labels,color = colors)

# plt.barh(range(len(data)), data, tick_label=labels,color = colors)
# 添加大标题
plt.title("2021年各月份销售业绩(万元)",fontsize=20,**Fs) 

# 给X轴定义标签
# plt.xlabel("月份",fontsize=15)

# 给Y轴定义标签
# plt.ylabel("销售额(万元)",fontsize=15)

# 依次给每根柱子添加数据标签,并把字体设置为新罗马体(教科书、论文的数字、公式一般都用新罗马体)
for i,j in zip(x, data):
    plt.text(i, j+0.05'%.0f' % j, ha='center', va= 'bottom',fontsize=15,**TNR)

# 为了美观,不显示画布的黑色边框
[axes.spines[loc_axis].set_visible(Falsefor loc_axis in ["top","bottom","left","right"]]

# 不显示Y轴坐标
axes.set_yticks([])

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg", format = "svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png", format = "png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg", format = "png")

# 添加网格
plt.grid(axis = "y")

# 自定义网格线形状
plt.grid(c = "gold")

# 定义网格线的线型和线宽,jupyter notebook 有提示
# '-', '--', '-.', ':', 'None', ' ', '', 'solid', 'dashed', 'dashdot', 'dotted'
plt.grid(linestyle = "dotted", linewidth = 0.5)
# 绘图
plt.show()
<Figure size 864x432 with 0 Axes>

横向柱形图

# 导入相关的包
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
HP = {'fontname':'STHUPO'}

# 自定义每根柱子的颜色
colors = ["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]

# 设置画布大小
figure,axes = plt.subplots(1,1,figsize = (12,10),dpi = 80)
data_h = [100130169220286372484629818106313821797]
lable_h = ["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"]


# 依次给每根柱子添加数据标签,并把字体设置为新罗马体(教科书、论文的数字、公式一般都用新罗马体)
N = len(data_h)
x = np.arange(N)
for i,j in zip(x, data_h):
    plt.text(j+50, i+0.1"%s" %j, ha='center', va = "top",fontsize = 15,**TNR)
    
# 数据顺序反转
# data_h.reverse()
# 标签顺序反转
# lable_h.reverse()
# 颜色顺序反转
# colors.reverse()

# 为了美观,不显示画布的黑色边框
[axes.spines[loc_axis].set_visible(Falsefor loc_axis in ["top","bottom","left","right"]]

# 添加大标题
plt.title("2021年各月份销售业绩(万元)",fontsize = 28,**HP) 

# 添加网格
# plt.grid(axis = "x")

plt.barh(x, data_h, height = 0.7, tick_label=lable_h,color = colors)

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg", format="png")

plt.show()

默认生成的饼图

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ["Fangsong"]
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (6,6),dpi = 120)

# 构造数据
y = [100130169220286372484629818106313821797]
label=["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"]

# 绘图
plt.pie(y,labels=label)

# 添加大标题,并设置字号大小,以及定义所用字体
plt.title("各月份销售占比",fontsize = 28)

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.jpg", format="png")

# 可视化呈现
plt.show()
<Figure size 864x432 with 0 Axes>

自定义配色的饼图

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(15,6))
figure,axes = plt.subplots(1,1,figsize = (15,6),dpi = 120)

y = [100130169220286372484629818106313821797]
label=["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"# 设置饼图标签

# 数据顺序反转
y.reverse()
# 标签顺序反转
label.reverse()

# 自定义饼图各扇区的颜色
colors=["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]

plt.pie(y,
        labels=label, # 设置分组类别标签
        colors = colors,  #自定义每个扇区的颜色
#         explode=(0, 0.2, 0, 0,0,0, 0,0,0, 0,0,0), # 让比值较大的扇区炸裂开来,占比越大,距离圆心越远
        autopct='%.2f%%'# 让标签以百分比形式显示,且精确到两位小数
        labeldistance = 1.1# 分组名称标签相对圆心的距离位置
        pctdistance = 0.9# 数值标签相对圆心的距离位置
#         shadow = True, # 添加阴影
        radius = 1,  # 饼图的相对半径
        startangle = 90,  # 绘图的起始角度
        counterclock = False  # 时针方向
       )

# 添加大标题,并设置字号大小,以及定义所用字体
plt.title("各月份销售占比",fontsize = 28,**HP)

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.jpg", format="png")

# 绘图
plt.show()
<Figure size 1080x432 with 0 Axes>

调整角度的饼图

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (6,6),dpi = 120)

y = [100130169220286372484629818106313821797]
label=["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"# 设置饼图标签

# 数据顺序反转
y.reverse()
# 标签顺序反转
label.reverse()

# 自定义饼图各扇区的颜色
colors=["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]

plt.pie(y,
        labels=label, # 设置分组类别标签
        colors = colors,  #自定义每个扇区的颜色
#         explode=(0, 0.2, 0, 0,0,0, 0,0,0, 0,0,0), # 让比值较大的扇区炸裂开来,占比越大,距离圆心越远
        autopct='%.2f%%'# 让标签以百分比形式显示,且精确到两位小数
        labeldistance = 1.1# 分组名称标签相对圆心的距离位置
        pctdistance = 0.9# 数值标签相对圆心的距离位置
#         shadow = True, # 添加阴影
        radius = 1,  # 饼图的相对半径
        startangle = 90,  # 绘图的起始角度
#         counterclock = False  # 时针方向
       )

# 添加大标题,并设置字号大小,以及定义所用字体
plt.title("各月份销售占比",fontsize = 28,**HP)

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.jpg", format="png")

# 绘图
plt.show()
<Figure size 864x432 with 0 Axes>

调整角度让标签可以在内部不重叠显示的饼图

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (6,6),dpi = 120)

y = [100130169220286372484629818106313821797]
label=["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"# 设置饼图标签

# 数据顺序反转
y.reverse()
# 标签顺序反转
label.reverse()

# 自定义饼图各扇区的颜色
colors=["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]

plt.pie(y,
        labels=label, # 设置分组类别标签
        colors = colors,  #自定义每个扇区的颜色
#         explode=(0, 0.2, 0, 0,0,0, 0,0,0, 0,0,0), # 让比值较大的扇区炸裂开来,占比越大,距离圆心越远
        autopct='%.2f%%'# 让标签以百分比形式显示,且精确到两位小数
        labeldistance = 1.1# 分组名称标签相对圆心的距离位置
        pctdistance = 0.9# 数值标签相对圆心的距离位置
#         shadow = True, # 添加阴影
        radius = 1,  # 饼图的相对半径
        startangle = 180,  # 绘图的起始角度
#         counterclock = False  # 时针方向
       )

# 添加大标题,并设置字号大小,以及定义所用字体
plt.title("各月份销售占比",fontsize = 28,**HP)

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.jpg", format="png")

# 绘图
plt.show()
<Figure size 864x432 with 0 Axes>

炸裂出来的饼图

# 解决部分 jupyter notebook 中出图不成功
%matplotlib inline

# 导入相关库
import numpy as np
import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False

# 字体
TNR = {'fontname':'Times New Roman'}
Fs = {'fontname':'Fangsong'}

# 设置画布大小
plt.figure(figsize=(12,6))
figure,axes = plt.subplots(1,1,figsize = (6,6),dpi = 120)

# 构造数据
y = [100130169220286372484629818106313821797]
label=["1月""2月""3月""4月""5月""6月""7月""8月""9月""10月""11月""12月"]

# 数据顺序反转
y.reverse()
# 标签顺序反转
label.reverse()

# 自定义饼图各扇区的颜色
colors=["#4E79A7",  "#A0CBE8",  "#F28E2B",  "#FFBE7D",  "#59A14F",  "#8CD17D",  "#B6992D",  "#F1CE63",  "#499894",  "#86BCB6",  "#E15759",  "#E19D9A"]

# 开始绘图
plt.pie(y,
        labels=label, # 设置分组类别标签
        colors = colors,  #自定义每个扇区的颜色
        explode=(0.20.100,0,00,0,00,0,0), # 让比值较大的扇区炸裂开来,占比越大,距离圆心越远
        autopct='%.2f%%'# 让标签以百分比形式显示,且精确到两位小数
        labeldistance = 1.1# 分组名称标签相对圆心的距离位置
        pctdistance = 0.9# 数值标签相对圆心的距离位置
#         shadow = True, # 添加阴影
        radius = 1,  # 饼图的相对半径
        startangle = 90,  # 绘图的起始角度
        counterclock = False  # 时针方向
       )

# 添加大标题,并设置字号大小,以及定义所用字体
plt.title("各月份销售占比",fontsize = 28,**HP)

# 输出为矢量图,不管放大或缩小,图形皆不会失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.svg", format="svg")
# 输出为常规的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.png", format="png")
# 输出为常规的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib饼图.jpg", format="png")

# 可视化呈现
plt.show()
<Figure size 864x432 with 0 Axes>

延申出来的学习资料:https://www.bilibili.com/video/BV11Q4y1f7VH

如何找到我:

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter