matplotlib实现数据可变_26_手把手教你学Python之数据可视化(上)

925e1bb6f03c339ccb5f22b89e8d8f40.png

Matplotlib介绍

matplotlib 是一个Python 的2D绘图库,提供了一套表示和操作图以及图内部对象的函数,借助它可以绘制多种多样的数据图,如线形图饼状图等。

Matplotlib中提供了两种绘图接口:

  • 基于MATLAB:自动创建和管理图和坐标系,用 pyplot 中函数作图;
  • 基于面向对象:显示创建图和坐标系,再调用对象的方法来作图。

本文介绍的绘图都是基于MATLAB的绘图接口。

Pyplot 是一个有命令风格的函数集合,和MATLAB很相似,通过调用函数不断完善绘图,最开始时图中什么都没有,需要什么就调用对应函数进行添加。pyplot 子库中的figure()用来创建图subplot()用来创建子图。所有的操作都是在子图上进行,pyplot 表示当前子图,若没有就创建一个子图,实际应用中经常直接用pyplot调用相关函数。

Python标准库中默认不包含 matplotlib,需要自己下载安装:

  • 命令行安装 pip install matplotlib (安装过程中会涉及到相关依赖包的安装,稍微有点慢)
  • 借助于第三方软件,例如通过Anaconda进行软件的安装和包管理。

Matplotlib中的对象又称为Artist,大致可分为两类:

  • 容器类:图坐标系坐标轴刻度;(图中可包含若干个坐标系,坐标系中又包含多个坐标轴,坐标轴上包含多个刻度)
  • 基础类:线文本图例网格标题

Matplotlib中图的构成如图所示,(该图来源于官网),主要包括:(figure)、坐标系(axes)、坐标轴(axis)、主刻度( Major tick )、分刻度( Minor tick )、主刻度标签( Major tick label )、分刻度标签( Minor tick label )、 Y 轴标签( Y axis label )、X 轴标签(X axis label )、线(line)、(marker)、图例(legend)、网格(grid)、标题(title)等。

6aca624ce271b23779cf3b6080971287.png

注意:并不是所有图中都包含这些内容,图中默认什么都没有,需要什么调用相应的方法即可将其添加进去。Pyplot中常见的方法如下:

632feab6d224bb94079c00a9418e4e39.png

pyplot.figure()

029441d05bfb7b8fdf4f39c713d74e23.png
  • num:整数或字符串,可选的,如果没有传值,则采用自增值,可通过number属性访问;如果传递整数,则会检查是否存在对应的图,存在则直接返回,否则创建新的图;如果传的是字符串,则设置为窗口的标题;
  • figsize:浮点型元组,可选。图的宽、高值,单位为英寸,默认为[6.4, 4.8]
  • dpi:整数,可选。分辨率 ,默认为100
  • facecolor:背景颜色,默认为白色;
  • edgecolor:边框颜色,默认为白色,默认看不出效果,需要将linewidth设置为一个比较大的值才能观察到;
  • frameon:是否绘制边框和背景,默认为True
  • FigureClass: 图对应的类;
  • clear: 是否清空画布,默认为False,设置为True,且图已存在时,会清空已有内容;
  • kwargs:其他关键字参数,例如线条宽度。

可以同时创建和显示多个图(figure)。

pyplot.subplot()

如果想在同一个图中绘制多个坐标系,可调用多次调用subplot()方法,每次在当前图中添加一个子块,返回一个坐标系对象。方法定义如下:

28389d34a18457cf99134291e1406ccc.png
  • args:可变参数,可传递3个整数,如①所示,分别表示行数列数以及当前的位置;也可传递一个3位整数,如②所示,第1位表示行数、第2位表示列数、第3位表示当前位置,此时要求所有数字都小于10。此时将当前图划分为 nrows * ncols 网格,子块的位置左上角为1从左到右,从上到下不断增大。如果多次调用subplot() 时,会在对应位置添加新内容,如果已有内容则覆盖。每次画图前需要指定位置,默认会执行subplot(1,1,1)
  • kwargs:其他关键字参数,例如可以通过projection指定坐标系类型、通过polar指定是否为极坐标、通过sharexsharey指定共享x轴或y轴坐标等。例如下面代码将整个图划分为2行2列4个区域。

5521e01824a6b4de73902e9476c53f42.png

facf4882cc6dc40fd824926ce2e0fb5e.png

更多详细内容可查看视频讲解,手把手教你学Python(入门基础)课程完整视频腾讯课堂链接:https://ke.qq.com/course/1581404?tuin=4c5cc1bc

dc3bf8a925143eb1d5d71b7baf2227ec.png

更多Python学习资料请加入群、联系助理老师或关注微信公众号获取,我们会不定期更新!

e135b421e2143eb5b9f0fb07739688bd.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值