博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matplotlib画图(一)---柱状图和饼状图
阅读量:4164 次
发布时间:2019-05-26

本文共 3964 字,大约阅读时间需要 13 分钟。

python数据处理

前言

pyplot 简介

matplotlib.pyplot是使 matplotlib 像 MATLAB 一样工作的函数集合。每个pyplot函数都会对图形进行一些更改:例如,创建图形、在图形中创建绘图区域、在绘图区域中绘制一些线条、用标签装饰绘图等。

在matplotlib.pyplot函数调用中保留各种状态,以便跟踪当前图形和绘图区域等内容,并且绘图函数指向当前轴(请注意此处和文档中的大多数地方的“轴”是指到图形的轴 部分, 而不是用于多个轴的严格数学术语)。

利用python,把数据以图表(柱状图)的形式直观的展示出来

一、柱状图

#导入matplotlib里面的pyplot包,简写成pltimport matplotlib.pyplot as plt

制作简单柱状图,使用plt.bar()方法。

import matplotlib.pyplot as plt num_list = [9.7,14.2,5,8] #数据列表ind = list(range(len(num_list))) #索引序列转换为列表plt.bar(ind,num_list)#绘制柱状图,索引列表和数据列表一一对应plt.show()#展示图表

在这里插入图片描述

接下来我们再绘制一个消费对比表。

#绘制一个两月的消费对比表import matplotlib.pyplot as pltjan = [345,234,500,450]feb = [456,230,500,350]ind = list(range(len(jan)))#width=0.3柱状图每隔住的宽度plt.bar(ind,jan,width=0.3)for i in range(len(ind)):    ind[i] = ind[i] + 0.3plt.bar(ind,feb,width=0.3)plt.show()

在这里插入图片描述

二、饼状图

#饼状图import matplotlib.pyplot as pltlabels = 'Frogs', 'Hogs', 'Dogs', 'Logs'sizes = [15, 30, 45, 10]#explode=explode让其中一块饼突出显示出来0.1代表的就是突出的距离explode = (0, 0.1, 0, 0) fig1, ax1 = plt.subplots()#labels=labels给每一块饼加上标签#autopct='%1.1f%%' 每个饼上显示百分比#shadow=True给饼加上阴影#startangle=90饼的角度是90,如果不写这个参数则是从0度开始ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',        shadow=True, startangle=90)ax1.axis('equal') #给饼图加上图例ax1.legend(title="slice",loc="center left",          bbox_to_anchor=(1, 0, 0.5, 1))#设置饼图标题ax1.set_title("slice")plt.show()

在这里插入图片描述

#饼状图import matplotlib.pyplot as pltlabels = 'Frogs', 'Hogs', 'Dogs', 'Logs'sizes = [15, 30, 45, 10]explode = (0, 0.1, 0, 0) fig1, ax1 = plt.subplots()#startangle=90饼的角度是90,如果不写这个参数则是从0度开始#wedgeprops=dict(edgecolor='k',width=0.8)设置饼的边界颜色,#width设置饼的实际宽度,设置为0.8,表示饼的实际宽度比半径要小一些,饼的中间就会出现一个半径为0.2的洞ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',        shadow=True,wedgeprops=dict(edgecolor='k',width=0.8))ax1.axis('equal') plt.show()

在这里插入图片描述

#我们可以为autopct参数提供一个函数,它会通过显示绝对值来扩展自动百分比标记;我们根据相关数据和所有值的已知总和计算后者。def func(pct, allvals):    absolute = int(round(pct/100.*np.sum(allvals)))    return "{:.1f}%\n({:d})".format(pct, absolute)    #lambda pct: func(pct, sizes)定义函数的一种方法ax1.pie(sizes, explode=explode, labels=labels,autopct=lambda pct: func(pct, sizes),        shadow=True,wedgeprops=dict(edgecolor='k',width=0.8))

在这里插入图片描述

代码如下:

#饼状图import matplotlib.pyplot as pltimport numpy as nplabels = 'Frogs', 'Hogs', 'Dogs', 'Logs'sizes = [15, 30, 45, 10]explode = (0, 0.1, 0, 0) fig1, ax1 = plt.subplots()#我们可以为autopct参数提供一个函数,它会通过显示绝对值来扩展自动百分比标记;我们根据相关数据和所有值的已知总和计算后者。def func(pct, allvals):    absolute = int(round(pct/100.*np.sum(allvals)))    return "{:.1f}%\n({:d})".format(pct, absolute)#lambda pct: func(pct, sizes)定义函数的一种方法ax1.pie(sizes, explode=explode, labels=labels,autopct=lambda pct: func(pct, sizes),        shadow=True,wedgeprops=dict(edgecolor='k',width=0.8))ax1.axis('equal') plt.show()

最后,我们来看一下pie函数的返回值

#我们来看一下pie函数的返回值wedges, texts, autotexts = ax1.pie(sizes, explode=explode, labels=labels,autopct=lambda pct: func(pct, sizes),        shadow=True,wedgeprops=dict(edgecolor='k',width=0.8))print('Wedges = ',wedges)#对应三块饼print('Texts = ',texts)#对应标签,文本对象print('Autotexts = ',autotexts)#也是三个文本对象,分别对应三个百分比字符串

在这里插入图片描述

我们可以使用图例的bbox_to_anchor参数将图例定位在饼图之外。这里我们使用轴坐标和位置;即图例的左中心点将位于边界框的左中心点,从到in 轴坐标。(1, 0, 0.5, 1)“center left”(1, 0)(1.5, 1)
通过pie()函数的返回值,也可以修改对应的参数,以‘图例’为例。

import matplotlib.pyplot as pltimport numpy as nplabels = 'Frogs', 'Hogs', 'Dogs', 'Logs'sizes = [15, 30, 45, 10]explode = (0, 0.1, 0, 0) fig1, ax1 = plt.subplots()def func(pct, allvals):    absolute = int(round(pct/100.*np.sum(allvals)))    return "{:.1f}%\n({:d})".format(pct, absolute)#我们来看一下pie函数的返回值wedges, texts, autotexts = ax1.pie(sizes, explode=explode, labels=labels,autopct=lambda pct: func(pct, sizes),        shadow=True,wedgeprops=dict(edgecolor='k',width=0.8))#print('Wedges = ',wedges)#对应三块饼#print('Texts = ',texts)#对应标签,文本对象#print('Autotexts = ',autotexts)#也是三个文本对象,分别对应三个百分比字符串ax1.legend(wedges, labels,          title="slice",          loc="center left",          bbox_to_anchor=(1, 0, 0.5, 1))ax1.axis('equal') plt.show()

在这里插入图片描述

转载地址:http://fqoxi.baihongyu.com/

你可能感兴趣的文章
如何在linux中运行中定义lib的路径在makefile里面
查看>>
修改一个文件夹下面所有文件和文件夹的属性--chmod -R 777 app_zt/
查看>>
动态库编写 头文件.h注意事项
查看>>
指针易犯错的地方--self标记
查看>>
多个动态库的依赖问题(先后顺序务必注意)
查看>>
linux怎么复制文件和复制文件夹
查看>>
kafka重复消费问题--consumer消费能力很低
查看>>
springboot集成kafka
查看>>
SpringBoot整合MyBatis
查看>>
C++编程第一步:输出九九乘法表
查看>>
C++编程第一步:输出水仙花数
查看>>
C++编程第一步:输出100以内的奇数和
查看>>
C++编程第一步:两个时间点的时间差
查看>>
C++编程第一步:逆序输出一个字符串,并输出字符串长度
查看>>
C++编程第一步:判断一个数字是不是整数
查看>>
ROS理论和实践---第五章机器视觉
查看>>
anacond的安装和环境变量配置2020
查看>>
三维点云处理:python及其模块下载安装环境配置和简单测试、点云集下载、
查看>>
三维点云处理:1绪论
查看>>
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
查看>>