数据分析入门之Matplotlib数据可视化基础(散点图、折线图、直方图、饼图、箱线图)
文章目录
- 1、掌握pyplot基础语法
- 1.1、基本绘图流程
- 1.2、创建画布与创建子图
- 1.2.1、设置画布大小
- 1.2.2、添加图列
- 1.2.3、解决中文乱码
- 1.3、添加画布内容
- 1.4、保存与展示图形
- 1.5、查看本地文件夹
- 2、绘制散点图
- 2.1、导入数据
- 2.2、解决"Object arrays cannot be loaded when allow_pickle=False"错误
- 2.3、绘制散点图
- 3、绘制折线图
- 4、绘制直方图
- 5、绘制饼图
- 6、绘制箱线图
- 6.1、绘制单个箱线图
- 6.2、绘制多个箱线图
1、掌握pyplot基础语法
1.1、基本绘图流程
1.2、创建画布与创建子图
- 第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制。
函数名称 | 函数作用 |
---|---|
plt.figure | 创建一个空白画布,可以指定画布大小,像素 |
figure.add_subplot | 创建并选中子图,可以指定子图的行数,列数,与选中图片编号 |
import matplotlib.pyplot as plt
import numpy as np
1.2.1、设置画布大小
plt.figure(figsize=(4,4))
x = np.arange(10)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x,y1)
plt.show()
1.2.2、添加图列
plt.plot(x,y1)
plt.plot(x,y2)
plt.legend(['sin()','cos()'])
plt.title('三角函数图列')
plt.xlabel('x值')
plt.ylabel('y值')
plt.show()
1.2.3、解决中文乱码
from matplotlib import rcParams
#支持中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号plt.plot(x,y1)
plt.plot(x,y2)
plt.legend(['sin()','cos()'])
plt.title('三角函数图列')
plt.xlabel('x值')
plt.ylabel('y值')
plt.show()
1.3、添加画布内容
- 第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。
函数名称 | 函数作用 |
---|---|
plt.title | 在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数 |
plt.xlabel | 在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数 |
plt.ylabel | 在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数 |
plt.xlim | 指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识 |
plt.ylim | 指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识 |
plt.xticks | 指定x轴刻度的数目与取值 |
plt.yticks | 指定y轴刻度的数目与取值 |
plt.legend | 指定当前图形的图例,可以指定图例的大小、位置、标签 |
1.4、保存与展示图形
- 主要用于保存和显示图形
函数名称 | 函数作用 |
---|---|
plt.savafig | 保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数 |
plt.show | 在本机显示图形 |
from matplotlib import rcParams
#支持中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号x = np.arange(10)#x轴
y1 = np.sin(x)#y轴
y2 = np.cos(x)plt.plot(x,y1)#画sin()图像
plt.plot(x,y2)#画cos()图像
plt.legend(['sin()','cos()'])#标明图列
plt.title('三角函数图列')#显示标题
plt.xlabel('x值')#标记x轴
plt.ylabel('y值')#标记y轴
plt.savefig('./sin_cos.png')#保存图片到本地
plt.show()#展示图片
1.5、查看本地文件夹
import os
os.listdir('./')
['.ipynb_checkpoints','Matplotlib数据可视化基础.ipynb','sin_cos.png','国民经济核算季度数据.npz']
2、绘制散点图
- 散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。
- 值是由点在图表中的位置表示,类别是由图表中的不同标记表示,通常用于比较跨类别的数据。
- scatter函数:
- matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)
- 常用参数及说明如下表所示:
参数名称 | 说明 |
---|---|
x,y | 接收array。表示x轴和y轴对应的数据。无默认 |
s | 接收数值或者一维的array。指定点的大小,若传入一维array则表示每个点的大小。默认为None |
c | 接收颜色或者一维的array。指定点的颜色,若传入一维array则表示每个点的颜色。默认为None |
marker | 接收特定string。表示绘制的点的类型。默认为None |
alpha | 接收0-1的小数。表示点的透明度。默认为None |
2.1、导入数据
data = np.load('./国民经济核算季度数据.npz')#allow_pickle=True
data.files
['columns', 'values']
查看数据:
2.2、解决"Object arrays cannot be loaded when allow_pickle=False"错误
- 如果导入数据后,查看数据报错,可以把导入方式改为
- data = np.load(Path,allow_pickle=True)
data = np.load('./国民经济核算季度数据.npz',allow_pickle=True)#allow_pickle=True用于解决报错问题
data['columns']#相当于header
array(['序号', '时间', '国内生产总值_当季值(亿元)', '第一产业增加值_当季值(亿元)', '第二产业增加值_当季值(亿元)','第三产业增加值_当季值(亿元)', '农林牧渔业增加值_当季值(亿元)', '工业增加值_当季值(亿元)','建筑业增加值_当季值(亿元)', '批发和零售业增加值_当季值(亿元)', '交通运输、仓储和邮政业增加值_当季值(亿元)','住宿和餐饮业增加值_当季值(亿元)', '金融业增加值_当季值(亿元)', '房地产业增加值_当季值(亿元)','其他行业增加值_当季值(亿元)'], dtype=object)
data['values']#相当于body
array([[1, '2000年第一季度', 21329.9, ..., 1235.9, 933.7, 3586.1],[2, '2000年第二季度', 24043.4, ..., 1124.0, 904.7, 3464.9],[3, '2000年第三季度', 25712.5, ..., 1170.4, 1070.9, 3518.2],...,[67, '2016年第三季度', 190529.5, ..., 15472.5, 12164.1, 37964.1],[68, '2016年第四季度', 211281.3, ..., 15548.7, 13214.9, 39848.4],[69, '2017年第一季度', 180682.7, ..., 17213.5, 12393.4, 42443.1]],dtype=object)
2.3、绘制散点图
- plt.scatter(x,y,s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
(1) 绘制第一产业增加值
plt.scatter(range(69),data['values'][:,2])
plt.show()
(2) 绘制第一、二、三产业增加值
for i in [3,4,5]:#分别对应一二三产业plt.scatter(range(69),data['values'][:,i])plt.legend(['1','2','3'])
plt.show()
3、绘制折线图
- 折线图(line chart)是一种将数据点按照顺序连接起来的图形。可以看作是将散点图,按照x轴坐标顺序连接起来的图形。
- 折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。
- plot函数
- matplotlib.pyplot.plot(*args, **kwargs)
- plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数主要如下:
参数名称 | 说明 |
---|---|
x,y | 接收array。表示x轴和y轴对应的数据。无默认 |
color | 接收特定string。指定线条的颜色。默认为None |
linestyle | 接收特定string。指定线条类型。默认为“-” |
marker | 接收特定string。表示绘制的点的类型。默认为None |
alpha | 接收0-1的小数。表示点的透明度。默认为None |
(1) 绘制一二三产业的折线图
from matplotlib import rcParams
#支持中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号for i in [3,4,5]:#分别对应一二三产业plt.plot(range(69),data['values'][:,i])
plt.legend(['第一产业','第二产业','第三产业'])
plt.show()
(2) 设置相关样式
l = ['r','b','c']#颜色
m = ['o','d','*']#形状分别为:圆形,菱形,星形for j,i in enumerate([3,4,5]):plt.plot(range(69),data['values'][:,i],c=l[j],marker=m[j],alpha=0.5)#alpha为透明度
plt.legend(['第一产业','第二产业','第三产业'])
plt.show()
(3) 样式调整
l = ['r','b','c']#颜色
m = ['o','d','*']#形状分别为:圆形,菱形,星形#plt.xlim((0,10))#设置数值的显示范围plt.figure(figsize=(20,6))#设置图像画布比例for j,i in enumerate([3,4,5]):plt.plot(data['values'][:,1],data['values'][:,i],c=l[j],marker=m[j],alpha=0.5)#alpha为透明度
plt.legend(['第一产业','第二产业','第三产业'])
plt.xticks(rotation=90)#x轴数据旋转90°
plt.show()
4、绘制直方图
- 直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。
- 用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。
- bar函数:
- matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs )
- 常用参数及说明如下表所示:
参数名称 | 说明 |
---|---|
left | 接收array。表示x轴数据。无默认 |
height | 接收array。表示x轴所代表数据的数量。无默认 |
width | 接收0-1之间的float。指定直方图宽度。默认为0.8 |
color | 接收特定string或者包含颜色字符串的array。表示直方图颜色。默认为None |
data['values']
array([[1, '2000年第一季度', 21329.9, ..., 1235.9, 933.7, 3586.1],[2, '2000年第二季度', 24043.4, ..., 1124.0, 904.7, 3464.9],[3, '2000年第三季度', 25712.5, ..., 1170.4, 1070.9, 3518.2],...,[67, '2016年第三季度', 190529.5, ..., 15472.5, 12164.1, 37964.1],[68, '2016年第四季度', 211281.3, ..., 15548.7, 13214.9, 39848.4],[69, '2017年第一季度', 180682.7, ..., 17213.5, 12393.4, 42443.1]],dtype=object)
数据可视化:
dt = data['values'][68,3:6]#读取序列号为69的一二三产业数据
plt.bar(range(len(dt)),dt)
plt.xticks(range(len(dt)),['第一产业','第二产业','第三产业'])
plt.show()
5、绘制饼图
- 饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。
- 饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观。
- 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, … )
- 常用参数及说明如下表所示:
参数名称 | 说明 |
---|---|
x | 接收array。表示用于绘制撇的数据。无默认 |
explode | 接收array。表示指定项离饼图圆心为n个半径。默认为None |
labels | 接收array。指定每一项的名称。默认为None |
color | 接收特定string或者包含颜色字符串的array。表示饼图颜色。默认为None |
autopct | 接收特定string。指定数值的显示方式。默认为None |
pctdistance | 接收float。指定每一项的比例和距离饼图圆心n个半径。默认为0.6 |
labeldistance | 接收float。指定每一项的名称和距离饼图圆心多少个半径。默认为1.1 |
radius | 接收float。表示饼图的半径。默认为1 |
plt.figure(figsize=(4,4))#设置画布大小,图像显示为正圆#画图,autopct显示百分比,explode向外凸,labels为图列标签,labeldistance为距离
plt.pie(dt,autopct='%.2f%%',explode=[0.2,0,0],labels=['第一产业','第二产业','第三产业'],labeldistance=1.4)
plt.show()
6、绘制箱线图
箱线图(boxplot)也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。
箱线图利用数据中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据,它也可以粗略地看出数据是否具有对称性、分布的分散程度等信息,特别可以用于对几个样本的比较,如图:
boxplot函数
- matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None,meanline=None, labels=None, … )
参数名称 | 说明 |
---|---|
x | 接收array。表示用于绘制箱线图的数据。无默认 |
notch | 接收boolean。表示中间箱体是否有缺口。默认为None |
sym | 接收特定sting。指定异常点形状。默认为None |
vert | 接收boolean。表示图形是横向纵向或者横向。默认为None |
positions | 接收array。表示图形位置。默认为None |
widths | 接收scalar或者array。表示每个箱体的宽度。默认为None |
labels | 接收array。指定每一个箱线图的标签。默认为None |
meanline | 接收boolean。表示是否显示均值线。默认为False |
6.1、绘制单个箱线图
plt.boxplot(data['values'][:,3])
plt.show()
6.2、绘制多个箱线图
数据分析入门之Matplotlib数据可视化基础(散点图、折线图、直方图、饼图、箱线图)相关推荐
- Python数据分析——Matplotlib数据可视化基础(二)
Python数据分析--Matplotlib数据可视化基础(二) 思维导图: 图形的绘制 认识要绘制的图形 基本绘图流程 pyplot基础图表函数 pyplot饼图的绘制 pie函数 matplotl ...
- 【Python数据科学快速入门系列 | 06】Matplotlib数据可视化基础入门(一)
这是机器未来的第52篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/126899226 <Python数据科学快速入 ...
- 数据科学与python语言——Matplotlib数据可视化基础
Matplotlib数据可视化基础 一.读取数据与数据处理阶段 1.提取指定行中的数据 2.得到>指定数值的数据 3.得到=指定值得数据 4.整体的数据处理: 二.画图函数 1.plt.subp ...
- 数据为北太平洋柔鱼两年(1,2)的生物学采样数据,根据此数据完成 (1) 按年描述柔鱼的体重和胴长数据(如均值,方差,级差,分位数等),并进行绘 制(如直方图、箱线图,密度图等)。
三.数据为北太平洋柔鱼两年(1,2)的生物学采样数据,根据此数据完成 (1) 按年描述柔鱼的体重和胴长数据(如均值,方差,级差,分位数等),并进行绘 制(如直方图.箱线图,密度图等). library ...
- python数据分析pandas画图_Pandas数据可视化基础绘图教程
众所周知,Pandas是基于Python平台的大数据分析与处理的利器.在数据为王的时代,想要掌握数据分析能力,学会Pandas数据可视化工具是十分重要的.本文将带领大家一步一步学习Pandas数据可视 ...
- Matplotlib数据可视化基础
一.了解绘图基础语法与常用参数 import matplotlib.pyplot as plt import numpy as np 画图流程: 1.创建画布 2.选定子图 3.绘制图形 4.添加图 ...
- matlab笔记——绘图篇——折线图+散点图+饼图+直方图+柱状图+箱线图+三维图+地图
今天早上刚讲完课,一个小时的培训准备起来也很不容易呐,但是讲完还是挺开心的啦. 现在来把绘图篇更新一下. 这篇主要就讲matlab数据可视化,介绍一下matlab基本图形绘制. 绘图篇 数据导入 给大 ...
- 3.Matplotlib数据可视化基础(上)(pyplot、rc参数、散点图、折线图)
笔记说明:本文是我的学习笔记,大部分内容整理自 黄红梅,张良均等.Python数据分析与应用[M].北京:人民邮电出版社,2018:52-77. 还有部分片断知识来自网络搜索补充. 可视化这块的内容我 ...
- 3-11 Matplotlib数据可视化基础
import matplotlib from matplotlib import pyplot import numpyx=numpy.linspace(0,10,100)#从0-10切分100段 s ...
最新文章
- 嘿,老李,又在写 BUG 呢?
- 2015!我来了,你在哪里?今年第一篇
- data stucture at the xuetang x
- Linux 环境下安装 Golang
- 优麒麟在linux下安装教程,在优麒麟Ubuntu Kylin系统中安装百度网盘Linux版.deb的方法...
- amd插帧技术如何开启_联想ThinkPad笔记本电脑如何开启CPU的虚拟化技术图文教程...
- Java Lambda表达式的使用
- php代码最佳实践,分享几个 PHP 编码的最佳实践
- android 触摸监听重写_第六十四回:Android中UI控件之SeekBar
- xp CMD命令参数
- 一键解决Windows聚焦不更新的方法
- 【业务安全02】业务数据安全
- AI 隐身术,能让物体在视频中消失的魔法
- js unshift性能分析
- 【简易教程】使用3dmax利用网上免费人物模型来制作人物动作动画
- 沃通CA证书支持多所高校招投标文件电子签名
- synchronized 和 AQS
- Web是什么,Web简单介绍
- 什么软件可以支持试卷扫描成电子文档?
- R语言学习丨数据重塑、拆分与组合基础知识,merge、melt、cast函数介绍