matplotlib基础绘图命令之pie
在matplotlib中,pie方法用于绘制饼图,基本用法如下
plt.pie(x=[1, 2, 3, 4])
输出的结果如下
这样的饼图并没有任何实用价值,为了有效的展示信息,至少我们还需要显示数据的标签和百分比的数值。此时就需要调整参数,pie方法常用的参数有以下几个
1. labels, 设置饼图中每部分的标签
2. autopct, 设置百分比信息的字符串格式化方式,默认值为None,不显示百分比
3. shadow, 设置饼图的阴影,使得看上去有立体感,默认值为False
4. startangle, 饼图中第一个部分的起始角度,
5. radius, 饼图的半径,数值越大,饼图越大
6. counterclock, 设置饼图的方向,默认为True,表示逆时针方向,值为False时为顺时针方向
7. colors,调色盘,默认值为None, 会使用默认的调色盘,所以通常情况下,不需要设置该参数
8. explode, 该参数用于突出显示饼图中的指定部分
下面来具体看下其中几个参数的用法
1. labels
labels指定每个部分的标签,用法如下
plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'])
输出结果如下
2. autopct
autopct设置饼图上的标记信息,有两种设置方式,第一种,设置字符串格式化,用法如下
plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%.1f%%')
输出结果如下
第二种,用函数来进行设置,用法如下
data=[1,2,3,4]
plt.pie(x=data, labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct=lambda pct:'({:.1f}%)n{:d}'.format(pct, int(pct/100 * sum(data))))
输出结果如下
3. explode
explode用于突出线似乎饼图中的子集,用间隔突出的方式进行显示,用法如下
plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%', explode = [0, 0, 0.05, 0])
输出结果如下
4. startangle
startangle指定起始角度,用法如下
plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%',startangle=90)
输出结果如下
5. countercolock
countercolock用于调整饼图的方向,用法如下
plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%',counterclock=False)
输出结果如下
6. radius
radius用于设置饼图的半径,半径越大,饼图越大,用法如下
plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%',radius=1.5)
输出结果如下
对于饼图而言,有一个非常现实的问题,就是图例的设置,在单张图片中,饼图的内容总是汇合图例重叠,示意如下
为了将图例和内容有效的区分开来,可以通过设置legend方法的bbox_to_anchor参数,该参数用于设置图例区域在figure上的坐标,其值为4个元素的元组,分别表示x,y,width,height, 代码如下
data=[1,2,3,4]
labels=['sampleA', 'sampleB', 'sampleC', 'sampleD']
plt.pie(x=data, labels=labels, autopct=lambda pct:'({:.1f}%)n{:d}'.format(pct, int(pct/100 * sum(data))))
plt.legend(labels,loc="upper left",bbox_to_anchor=(1.2, 0, 0.5, 1))
x的值大于1,表示图例的位置位于axes右侧区域,x的值越大,图例和饼图之间的空隙越大,上述代码的输出效果如下
饼图作为常用图表之一,在展示百分比信息时,有不可替代的优势。matplotlib中的pie函数在传统饼图的基础上,添加了突出展示的功能,进一步加强了饼图的可视化效果。
·end·
- Upgrade with the Gradle Wrapper, gradlew升级
- 使用swagger作为restful api的doc文档生成
- 面试机器学习、大数据岗位时遇到的各种问题
- 使用nginx代理跨域,使用nginx代理bing的每日一图
- Java Web基础入门
- Java中Optional使用注意事项
- 使用awk来解析dump文件 (73天)
- IntelIj IDEA运行JUnit Test OutOfMemoryError
- git pull fails “unable to resolve reference” “unable to update local ref”
- 使用dropwizard(5)--加入swagger
- 使用hint来调优sql语句(72天)
- 用R语言对城管事件数据分析
- 使用dropwizard(4)-加入测试-jacoco代码覆盖率
- goldengate学习-安装篇(71天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring Cloud Feign服务之间的调用
- Spring Cloud 之 Ribbon 负载均衡
- JS贪吃蛇
- 微信小程序——轮播图、组件传值、下拉刷新、导航 实战开发
- 从微信网页授权到OAuth 2.0
- 微信小程序常用组件
- React进阶篇(七)React 同构
- 商业数据分析从入门到入职(5)Python基本语法和数据类型
- JavaScript 同步和异步的执行机制问题
- Vue 与小程序:父组件给子组件传值的区别
- Canvas悟空推箱子
- Spring Cloud 之服务网关 Zuul (一)
- React进阶篇(八)react redux
- 通过一个简单例子理解JavaScript闭包和this对象
- Spring Cloud 之服务网关 Gateway (一)