我在网上随便找了一组数据,用它来学习画图。大家可以直接把下面的数据复制到excel里,然后用pandas的read_excel命令读取。或者直接在脚本里创建该数据。

饼图: ax.pie(x,labels=...,explode=...)

代码如下:

import numpy as np
import matplotlib
from matplotlib import pyplot as plt
matplotlib.rcParams['font.sans-serif']='Microsoft Yahei' #改字体为微软雅黑,以便显示中文
fig,ax=plt.subplots() animal={"锯齿动物":38,"蝙蝠类":21.8,"食虫类":8.2,"灵长类":8,"其他":6.9,"有袋类":6.5,"食肉类":5.6,"偶蹄类":5} #创建数据
data=np.array([i for i in animal.values()]).astype(float) #饼图显示数据,将其转换成float格式
explode=[0.1,0,0,0,0,0,0,0] #设置突出显示的内容,这里为突出显示第一项
label=np.array([j for j in animal.keys()]) #设置标签
ax.pie(data,labels=label,autopct='%.1f%%',explode=explode,startangle=90,counterclock=False) #autopct为显示百分比,startangle为起始角度,counterclock逆时针选否
ax.set_title("哺乳动物类群") #设置标题
ax.axis("equal") #设置x轴和y轴等长,否则饼图将不是一个正圆 plt.show()

图像如下:

需要注意的是:所有类别的百分比相加应为100%,千万不要出现少于或大于100%的情况。

还有一种图是面包圈图,就是饼中心是空的。可以通过设置ax.pie命令里的wedgeprops参数来达到此效果。

还是以上面的数据为例,来画面包圈图:

import numpy as np
import matplotlib
from matplotlib import pyplot as plt
matplotlib.rcParams['font.sans-serif']='Microsoft Yahei' #改字体为微软雅黑,以便显示中文
fig,ax=plt.subplots() animal={"锯齿动物":38,"蝙蝠类":21.8,"食虫类":8.2,"灵长类":8,"其他":6.9,"有袋类":6.5,"食肉类":5.6,"偶蹄类":5} #创建数据
data=np.array([i for i in animal.values()]).astype(float) #饼图显示数据,将其转换成float格式
label=np.array([j for j in animal.keys()]) #设置标签
ax.pie(data,labels=label,autopct='%.1f%%',startangle=90,counterclock=False,wedgeprops=dict(width=0.6,edgecolor='w')) #autopct为显示百分比,startangle为起始角度,counterclock逆时针选否
ax.set_title("哺乳动物类群") #设置标题
ax.axis("equal") #设置x轴和y轴等长,否则饼图将不是一个正圆 plt.show()

图像如下:

Matplotlib学习---用matplotlib画饼图/面包圈图(pie chart, donut chart)的更多相关文章

  1. Matplotlib学习---用matplotlib画箱线图(boxplot)

    箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...

  2. Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)

    直方图用于展示数据的分布情况,x轴是一个连续变量,y轴是该变量的频次. 下面利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://d ...

  3. Matplotlib学习---用seaborn画联合分布图(joint plot)

    有时我们不仅需要查看单个变量的分布,同时也需要查看变量之间的联系,这时就需要用到联合分布图. 这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图 ...

  4. Matplotlib学习---用matplotlib和sklearn画拟合线(line of best fit)

    在机器学习中,经常要用scikit-learn里面的线性回归模型来对数据进行拟合,进而找到数据的规律,从而达到预测的目的.用图像展示数据及其拟合线可以非常直观地看出拟合线与数据的匹配程度,同时也可用于 ...

  5. Matplotlib学习---用matplotlib画误差线(errorbar)

    误差线用于显示数据的不确定程度,误差一般使用标准差(Standard Deviation)或标准误差(Standard Error). 标准差(SD):是方差的算术平方根.如果是总体标准差,那么用σ表 ...

  6. Matplotlib学习---用matplotlib画阶梯图(step plot)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/us-postage.c ...

  7. Matplotlib学习---用matplotlib画面积图(area chart)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://book.flowingdata.com/ch05/data/us-pop ...

  8. Matplotlib学习---用matplotlib画热图(heatmap)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/ppg2008.csv ...

  9. Matplotlib学习---用matplotlib画折线图(line chart)

    这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图. 数据地址:https://raw.githubusercontent.com/jakevd ...

随机推荐

  1. Unity3D中Isometric Tilemap功能实践

    前言 最近出于兴趣想自己做一个2D的游戏,因为有着C#的基础,所以决定使用Unity3D来做. 之前对于Unity3D其实了解不多,不过看了一些Unity3D的视频和官方文档后,暂时做起来也没遇到什么 ...

  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统-WebApi的用法与调试

    1:ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-WebApi与Unity注入 使用Unity是为了使用我们后台的BLL和DAL层 2:ASP.NET MVC5+EF6+Easy ...

  3. pycharm 常用快捷键操作

    #最重要的快捷键 1. ctrl+shift+A:万能命令行 2. shift两次:查看资源文件 #新建工程第一步操作 1. module设置把空包分层去掉,compact empty middle ...

  4. matplotlib 入门之Image tutorial

    文章目录 载入图像为ndarray 显示图像 调取各个维度 利用cmp 获得像素点的RGB的统计 通过clim来限定rgb 标度在下方 插值,马赛克,虚化 matplotlib教程学习笔记 impor ...

  5. eclipse如何添加web dynamic project

    很多eclipse版本是不能直接新建web dynamic project的,需要从网上找插件或更新. 比较方便的是在Help → Install-New-Software,点击add按钮,在Loca ...

  6. 第五章 动态SQL 批量操作

    用于实现动态SQL的元素主要有 if trim where set choose(when.otherwise) foreach MyBatis  缓存 一级缓存 在test类中 调用相同的方法 第二 ...

  7. java开发中使用枚举表述数据字典

    一.用枚举表述数据字典 1.代码: package com.inspire.jdk.caculate; /** * Created by yaming * 用枚举表述常量数据字段 */ public ...

  8. 17-vue-cli脚手架安装和webpack-simple模板项目生成

    ue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目. GitHub地址是:https://github.com/vuejs/vue-cli 一.安 ...

  9. Webbench、ab命令:做压力测试的工具和性能的监控工具

    DDOS攻击:???DDOS概述:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目 ...

  10. [转帖]tar高级教程:增量备份、定时备份、网络备份

    tar高级教程:增量备份.定时备份.网络备份 作者: lesca 分类: Tutorials, Ubuntu 发布时间: 2012-03-01 11:42 ė浏览 27,065 次 61条评论 一.概 ...