文章目录

  • 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数据可视化基础(散点图、折线图、直方图、饼图、箱线图)相关推荐

  1. Python数据分析——Matplotlib数据可视化基础(二)

    Python数据分析--Matplotlib数据可视化基础(二) 思维导图: 图形的绘制 认识要绘制的图形 基本绘图流程 pyplot基础图表函数 pyplot饼图的绘制 pie函数 matplotl ...

  2. 【Python数据科学快速入门系列 | 06】Matplotlib数据可视化基础入门(一)

    这是机器未来的第52篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/126899226 <Python数据科学快速入 ...

  3. 数据科学与python语言——Matplotlib数据可视化基础

    Matplotlib数据可视化基础 一.读取数据与数据处理阶段 1.提取指定行中的数据 2.得到>指定数值的数据 3.得到=指定值得数据 4.整体的数据处理: 二.画图函数 1.plt.subp ...

  4. 数据为北太平洋柔鱼两年(1,2)的生物学采样数据,根据此数据完成 (1) 按年描述柔鱼的体重和胴长数据(如均值,方差,级差,分位数等),并进行绘 制(如直方图、箱线图,密度图等)。

    三.数据为北太平洋柔鱼两年(1,2)的生物学采样数据,根据此数据完成 (1) 按年描述柔鱼的体重和胴长数据(如均值,方差,级差,分位数等),并进行绘 制(如直方图.箱线图,密度图等). library ...

  5. python数据分析pandas画图_Pandas数据可视化基础绘图教程

    众所周知,Pandas是基于Python平台的大数据分析与处理的利器.在数据为王的时代,想要掌握数据分析能力,学会Pandas数据可视化工具是十分重要的.本文将带领大家一步一步学习Pandas数据可视 ...

  6. Matplotlib数据可视化基础

    一.了解绘图基础语法与常用参数 import matplotlib.pyplot as plt import numpy as np  画图流程: 1.创建画布 2.选定子图 3.绘制图形 4.添加图 ...

  7. matlab笔记——绘图篇——折线图+散点图+饼图+直方图+柱状图+箱线图+三维图+地图

    今天早上刚讲完课,一个小时的培训准备起来也很不容易呐,但是讲完还是挺开心的啦. 现在来把绘图篇更新一下. 这篇主要就讲matlab数据可视化,介绍一下matlab基本图形绘制. 绘图篇 数据导入 给大 ...

  8. 3.Matplotlib数据可视化基础(上)(pyplot、rc参数、散点图、折线图)

    笔记说明:本文是我的学习笔记,大部分内容整理自 黄红梅,张良均等.Python数据分析与应用[M].北京:人民邮电出版社,2018:52-77. 还有部分片断知识来自网络搜索补充. 可视化这块的内容我 ...

  9. 3-11 Matplotlib数据可视化基础

    import matplotlib from matplotlib import pyplot import numpyx=numpy.linspace(0,10,100)#从0-10切分100段 s ...

最新文章

  1. 嘿,老李,又在写 BUG 呢?
  2. 2015!我来了,你在哪里?今年第一篇
  3. data stucture at the xuetang x
  4. Linux 环境下安装 Golang
  5. 优麒麟在linux下安装教程,在优麒麟Ubuntu Kylin系统中安装百度网盘Linux版.deb的方法...
  6. amd插帧技术如何开启_联想ThinkPad笔记本电脑如何开启CPU的虚拟化技术图文教程...
  7. Java Lambda表达式的使用
  8. php代码最佳实践,分享几个 PHP 编码的最佳实践
  9. android 触摸监听重写_第六十四回:Android中UI控件之SeekBar
  10. xp CMD命令参数
  11. 一键解决Windows聚焦不更新的方法
  12. 【业务安全02】业务数据安全
  13. AI 隐身术,能让物体在视频中消失的魔法
  14. js unshift性能分析
  15. 【简易教程】使用3dmax利用网上免费人物模型来制作人物动作动画
  16. 沃通CA证书支持多所高校招投标文件电子签名
  17. synchronized 和 AQS
  18. Web是什么,Web简单介绍
  19. 什么软件可以支持试卷扫描成电子文档?
  20. R语言学习丨数据重塑、拆分与组合基础知识,merge、melt、cast函数介绍

热门文章

  1. windows下搭建Git服务器
  2. [*****]深入理解计算机系统(修订版)
  3. 测控一体化闸门 灌区智能控制闸门 渠道智能测控闸门系统解决方案
  4. 重新定义 NFT (音乐、四维、隐私、交互)——下篇
  5. 数据可视化常用的饼图,看看,这样展示更方便,好看
  6. Linux安全 - 详解Linux防火墙(一)
  7. 基于FPGA的大屏幕全彩LED扫描控制器设计
  8. iOS开发~卡顿优化
  9. Group Norm 学习笔记
  10. iOS6、7、8、9区别和新特性