惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
罗磊的独立博客
宝玉的分享
宝玉的分享
月光博客
月光博客
V
V2EX
博客园 - 司徒正美
Vercel News
Vercel News
量子位
Y
Y Combinator Blog
美团技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
博客园 - Franky
小众软件
小众软件
I
InfoQ
A
About on SuperTechFans

BOB'S BLOG

抖音滑块验证码 captchaBody 逆向分析,JSVMP 纯算法还原 - BOB'S BLOG Python 数据结构之栈的实现 - BOB'S BLOG Python 算法之递归与尾递归,斐波那契数列以及汉诺塔的实现 - BOB'S BLOG Python 实现十大经典排序算法 - BOB'S BLOG COVID-19 肺炎疫情数据实时监控(python 爬虫 + pyecharts 数据可视化 + wordcloud 词云图) Python 数据分析三剑客之 Pandas(十):数据读写 - BOB'S BLOG Python 数据分析三剑客之 Pandas(九):时间序列 - BOB'S BLOG Python 数据分析三剑客之 Pandas(八):数据重塑/重复数据处理/数据替换 - BOB'S BLOG Python 数据分析三剑客之 Pandas(七):合并数据集 - BOB'S BLOG Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂/应用/合并 - BOB'S BLOG Python 数据分析三剑客之 Pandas(五):统计计算与统计描述 - BOB'S BLOG Python 数据分析三剑客之 Pandas(四):函数应用/映射/排序和层级索引 - BOB'S BLOG Python 数据分析三剑客之 Pandas(三):算术运算与缺失值的处理 - BOB'S BLOG Python 数据分析三剑客之 Pandas(二):Index 索引对象以及各种索引操作 - BOB'S BLOG Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象 Python 数据分析三剑客之 Matplotlib(十一):最常用最有价值的 50 个图表【译文】 Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制 - BOB'S BLOG Python 数据分析三剑客之 Matplotlib(九):极区图/极坐标图/雷达图的绘制 - BOB'S BLOG Python 数据分析三剑客之 Matplotlib(八):等高线/等值线图的绘制 - BOB'S BLOG
Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制 - ...
2020-05-11 · via BOB'S BLOG

文章目录

  • 【1x00】方法描述
  • 【2x00】简单示例
  • 【3x00】按角度调整扇形标签
  • 【4x00】显示图例
  • 【5x00】突出显示扇形块
  • 【6x00】显示各扇区所占百分比
  • 【7x00】旋转饼状图
  • 【8x00】自定义每个扇形和文字属性

Matplotlib 系列文章:


专栏:

推荐学习资料与网站:


这里是一段物理防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 ITBOB。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106025845
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【1x00】方法描述

matplotlib.pyplot.pie() 方法用于绘制饼状图。

基本语法:

matplotlib.pyplot.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, rotatelabels=False, \*, data=None]
        )
参数 描述
x 每个扇形块的大小,数组形式,大小单位是比例
explode 指定对应扇形块脱离饼图的半径大小,数组形式,其中元素个数应该是 len(x)
labels 每个扇形块上的文本标签,列表形式
labeldistance 每个扇形块上的文本标签与扇形中心的距离,float 类型,默认 1.1
colors 每个扇形块对应的颜色,数组形式
autopct 用于计算每个扇形块所占比例,字符串或者函数类型
例如:autopct='%1.1f%%' 表示浮点数,保留一位小数,并添加百分比符号
pctdistance 每个扇形块的中心与 autopct 生成的文本之间的距离,float 类型,默认 0.6
shadow 是否为扇形添加阴影效果
startangle 将饼图按照逆时针旋转指定的角度,float 类型
radius 饼图的半径,如果是 None,则将被设置为 1,float 类型
counterclock 是否按照逆时针对扇形图进行排列,bool 类型,默认 True
wedgeprops 传递给绘制每个扇形图对象的参数,字典形式,参数值参见 Wedge
例如:wedgeprops = {'linewidth': 3} 设置扇形边框线宽度为 3
textprops 传递给文本对象的参数,字典形式
例如:textprops={'color': 'r', 'fontsize': 15} 设置文字为红色,大小为15
center 饼图圆心在画布上是坐标,默认 (0, 0)
frame 是否显示 x, y 坐标轴外框,默认 False
rotatelabels 是否按照角度进行调整每块饼的 label 文本标签,默认 False

【2x00】简单示例

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']

# 指定4个扇区所占比例以及扇区的颜色,扇区文本标签距离扇区中心1.1
plt.pie(x, labels=labels, colors=colors, labeldistance=1.1)
plt.title('饼状图简单示例')

plt.show()

01

【3x00】按角度调整扇形标签

rotatelabels 属性可以设置是否按照角度调整每块饼的 label(标签)显示方式。

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

x = [10, 30, 45, 15]
labels = ['Java', 'Go', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']

# 指定4个扇区所占比例以及扇区的颜色,扇区文本标签距离扇区中心1.1,按角度调整 labels
plt.pie(x, labels=labels, colors=colors, labeldistance=1.1, rotatelabels=True)
plt.title('饼状图按角度调整 labels 示例')

plt.show()

02

【4x00】显示图例

与前面文章中绘制线性图、散点图、条形图一样,调用 matplotlib.pyplot.legend() 方法可绘制图例,该方法的参数解释参见前文《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性》

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

x = [10, 30, 45, 15]
labels = ['Java', 'Go', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']

plt.pie(x, labels=labels, colors=colors, labeldistance=1.1)
plt.title('饼状图显示图例示例')
plt.legend(bbox_to_anchor=(1, 1))

plt.show()

03


这里是一段物理防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 ITBOB。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106025845
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【5x00】突出显示扇形块

explode 参数可以实现突出显示某一块扇区,接收数组形式的参数,这个数组中的元素个数应该是 len(x),即和扇区块的数量相同。

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']

# 指定第一个扇区块脱离饼图的半径大小为0.3,其它扇区不脱离
plt.pie(x, labels=labels, colors=colors, labeldistance=1.1, explode=[0.3, 0, 0, 0])
plt.title('饼状图突出显示扇形块示例')
plt.legend(bbox_to_anchor=(1, 1))

plt.show()

04

【6x00】显示各扇区所占百分比

autopct 参数可用于计算每个扇形块所占比例,接收字符串或者函数类型,例如:autopct='%1.1f%%' 表示浮点数,保留一位小数,并添加百分比符号。pctdistance 参数用于调整每个扇形块的中心与 autopct 生成的文本之间的距离,float 类型,默认 0.6。

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']

plt.pie(
    x,                        # 每个扇形块所占比例
    labels=labels,            # 扇形块文本标签
    colors=colors,            # 扇形块颜色
    labeldistance=1.1,        # 扇形块标签距离中心的距离
    explode=[0.3, 0, 0, 0],   # 第一个扇形块突出显示
    autopct='%1.1f%%',        # 显示百分比,保留一位小数
    pctdistance=0.5           # 百分比文本距离饼状图中心的距离
)
plt.title('饼状图显示各扇区所占百分比示例')
plt.legend(bbox_to_anchor=(1, 1))  # 显示图例

plt.show()

05

【7x00】旋转饼状图

startangle 参数可以选择饼状图,改变饼状图放置的角度。注意是按照逆时针旋转。

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']

plt.pie(
    x,                        # 每个扇形块所占比例
    labels=labels,            # 扇形块文本标签
    colors=colors,            # 扇形块颜色
    labeldistance=1.1,        # 扇形块标签距离中心的距离
    explode=[0.3, 0, 0, 0],   # 第一个扇形块突出显示
    autopct='%1.1f%%',        # 显示百分比,保留一位小数
    pctdistance=0.5,          # 百分比文本距离饼状图中心的距离
    startangle=-90            # 逆时针旋转-90°,即顺时针旋转90°
)
plt.title('饼状图旋转角度示例')
plt.legend(bbox_to_anchor=(1, 1))  # 显示图例

plt.show()

06

【8x00】自定义每个扇形和文字属性

wedgeprops 参数以字典形式为每个扇形添加自定义属性,例如:wedgeprops = {'linewidth': 3} 设置扇形边框线宽度为 3,更多其他参数值参见 Wedge

textprops 参数同样以字典形式为文本对象添加自定义属性,例如:textprops={'color': 'r', 'fontsize': 15} 设置文字为红色,大小为15,更多其他参数值参见 Text

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

x = [10, 30, 45, 15]
labels = ['Java', 'Golang', 'Python', 'C++']
colors = ['red', 'yellow', 'blue', 'green']

plt.pie(
    x,                           # 每个扇形块所占比例
    labels=labels,               # 扇形块文本标签
    colors=colors,               # 扇形块颜色
    labeldistance=1.1,           # 扇形块标签距离中心的距离
    explode=[0.3, 0, 0, 0],      # 第一个扇形块突出显示
    autopct='%1.1f%%',           # 显示百分比,保留一位小数
    pctdistance=0.6,             # 百分比文本距离饼状图中心的距离
    shadow=True,                 # 显示阴影效果
    wedgeprops={                 # 为每个扇形添加属性
        'width': 0.7,            # 扇形宽度0.7
        'edgecolor': '#98F5FF',  # 扇形边缘线颜色
        'linewidth': 3           # 扇形边缘线宽度
    },
    textprops={                  # 为文字添加属性
        'fontsize': 13,          # 文字大小
        'fontweight': 'bold',    # 文字粗细
        'color': 'k'             # 文字颜色,黑色
    }
)
plt.title('饼状图自定义每个扇形和文字属性示例', fontweight='bold')
plt.legend(bbox_to_anchor=(1, 1), borderpad=0.6)  # 显示图例

plt.show()

07


这里是一段物理防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 ITBOB。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/106025845
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!