matplotlib是一个专门用来绘图的库,在分析数据的时候,使用它可以将数据进行可视化,更直观的呈现。下面是几个通过matplot绘制的图。

通过图形的绘制,我们可以很清晰地看到数据直接的关系,并对这些关系进行分析,如果是传统的一行行数据,在我们分析时是很不直观的。

Matplotlib图像结构

其他说明:

  1. 一个figure(画布)可以包含多个axes(坐标系/绘图区),但是一个axes只能属于一个figure。
  2. 一个axes(坐标系/绘图区)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系
  3. 辅助显示层为Axes(绘图区)内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。该层的设置可使图像显示更加直观更加容易被用户理解,但又不会对图像产生实质的影响。

pyplot基本绘图功能介绍

matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。

matplotlib有一套完全仿照MATLAB的函数形式的绘图接口,那就是matplotlib.pyplot。pyplot是Matplotlib的子库,它提供了和matlab类似的绘图API,方便用户快速绘制2D图表。pyplot中基本包含了matplotlib的全部功能,我们一般也是对它进行操作的。

在使用的时候,我们可以通过下面语句进行数据的导入:

import matplotlib.pyplot as plt

让我们从例子中来看pyplot使用的基本操作。

import matplotlib.pyplot as plt    # 导入模块

# 1)创建画布(容器层)
plt.figure(figsize=(10, 5)) # 10为绘图对象长度,5为宽度
# 2)绘制折线图(图像层)
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])
# 3)显示图像
plt.show()

通过上面代码,我们创建出了下面的图像。

创建画布

每次我们打算绘制一个图形的时候,都需要一个画布,有的地方也称它为绘图对象。一般用plt.figure()函数来创建一个画布,比如:

通过figsize参数,我们可以设置画布的长度和宽度,单位是英寸;通过dpi参数,我们可以指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80。上面例子中,图像的宽度为:10*80=800像素。可以看到和下面的结果是一致的。

绘制图像

我们通常使用plt.plot来绘制一个图像。我们绘制图像的时候是需要一个画布的,我们可以使用上面的figure来具体设置一个画布,如果不需要精确设置画布的话,我们使用plot时,Matplotlib会自动帮我们生成一个画布。

下面是两个例子,他们设置的效果是一样的:

plt.plot(x, y, label="$cos($x^2)", color="red", linewidth=2)
plt.plot(x, y, "r-", label="cos($x^2)$")

让我们通过例子了解一下这几个参数:

(1)x、y:这两个数很容易理解,就是两个变量。我们在坐标轴上要确定一个点往往要确定两个值:横坐标值和纵坐标值。我们绘制图像的时候有很多种,有折线图和曲线图,都可以用它来设置。具体它们两个设置的区别会在后面例子中讲解。

(2)第三个参数:在第二个例子中,我们设置了第二个参数"r-",它的意思是设置红色的实线。

(3)label:设置图例中的内容。有时我们需要添加的是一些数据公式,我们可以在字符串前后添加“$”符号,Matplotlib就会使用它内嵌的latex引擎绘制我们写入的数学公式。在一些文本设置的时候,我们也会使用$符号,比如:r"$reall\ bad$"。中间的反斜杠是因为$中空格是不识别的,要加反斜杠进行转义,这样显示的英文字体会好看很多。

(4)color:如果我们不使用第三个参数的设置,这个参数可以用来指定线条颜色。

(5)linewidth:用于指定曲线的宽度。

图像输出

图像的输出有两种方式,一个是在直接显示,一个是保存成图片到本地

(1)直接显示

我们可以通过plt.show()函数显示图像,显示后会释放画布资源,如果在显示图像之后保存图片,将只能保存空图片。

(2)保存图片到本地

我们可以通过plt.savefig()函数将图像保存到指定路径,这里需要注意:如果直接显示和保存到本地都要有的话,保存到本地的操作要写到show函数前。比如:plt.savefig("D:\\demo.png")。

我们还可以通过设置dpi参数指定图像的分辨率,比如:plt.savefig("D:\\demo.png", dpi=120)。

辅助显示层

我们通过plt.plot函数绘制完图形之后,是一个很朴素的图,所有我们通常会加入辅助显示层来让整个图像变得丰满,下面会介绍几个常用的设置。

(1)显示图例

如果只在plt.plot()中设置label还不能最终显示出图例,还需要通过plt.legend()将图例显示出来,比如:

plt.legend(loc="best")

它的其他参数设置,如下图所示:

注意:如果设置为best,matplotlib会自动找一个合适的位置显示图例。

(2)设置当前绘图区标题

比如:plt.title("我的Matplotlib图")。

(3)X、Y轴标题

比如:plt.xlabel("时间")、plt.ylabel("温度")

(4)添加网格线

添加网格线我们使用函数:plt.grid()

综合例子

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(-3, 3, 100) # 生成-3到3范围内的100个点。
y = x*4+1
z = x**2 plt.figure(figsize=(8,4))
plt.plot(x, y, label="$x*2+1$", color="red", linewidth=2)
plt.plot(x, z, "b--", label="$X^2$")
plt.plot([1, 2, 3, 4, 5, 6 ,7], [7,7,8,5,0.3,1,0.3], "k:", label="折线图")
plt.grid()
plt.legend(loc="best")
plt.show()

运行之后显示的图像如下:

Matplotlib三层架构总结

  • 容器层

    • 画板 Canvas
    • 画布 Figure
    • 绘制图形区 Axes
      • X轴
      • Y轴
  • 辅助显示层
    • 网格
    • 刻度
    • 刻度说明
    • 图例说明
    • 。。。
  • 图像层
    • 折线图
    • 散点图
    • 柱状图
    • 饼图
    • 直方图

Matplotlib——初级的更多相关文章

  1. Python 的 Matplotlib 画图库

    Matplotlib安装 NumPy库方便数值运算,但枯燥的数据并不利于人们的直观理解. 数据需要可视化. Matplotlib:一个数据可视化函数库 使用前需要安装  利用Python自带 ...

  2. 【Python】一份非常好的Matplotlib教程

    Matplotlib 教程 本文为译文,原文载于此,译文原载于此.本文欢迎转载,但请保留本段文字,尊重作者和译者的权益.谢谢.: ) 介绍 Matplotlib 可能是 Python 2D-绘图领域使 ...

  3. python 数据可视化(matplotlib)

    matpotlib 官网 :https://matplotlib.org/index.html matplotlib 可视化示例:https://matplotlib.org/gallery/inde ...

  4. python入门-分类和回归各种初级算法

    引自:http://www.cnblogs.com/taichu/p/5251332.html ########################### #说明: # 撰写本文的原因是,笔者在研究博文“ ...

  5. Matplotlib——中级

    关于Matplotlib的愚见 初级中,我只是简单介绍了Matplotlib的使用方法,在中级部分,我系统地说一下我总结的内容. 上图是我画的关于Matplotlib几个对象之间的关系图.它们都来自于 ...

  6. Python数据分析-Matplotlib图标绘制

    Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...

  7. Matplotlib散点图、条形图、直方图-02

    对比常用统计图 折线图: 特点:能够显示数据的变化趋势,反映事物的变化情况.(变化) 直方图: 特点:绘制连续性的数据,展示一组或者多组数据的分布情况(统计) 条形图: 特点:绘制离散的数据,能够一眼 ...

  8. Matplotlib介绍

    目录 一.    Matplotlib介绍    1 二.    初级绘制    1 1.    绘图简介    1 2.    在上面的过程中,主要就是下面三个元素:    1 三.    2D各种 ...

  9. 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

    马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...

随机推荐

  1. jquery弹窗居中-类似alert()

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  2. Bzoj1835:[ZJOI2010]基站选址

    Sol 设\(f[i][j]\)表示钦定\(i\)建基站,建了\(j\)个基站的最小代价 \(f[i][j]=max(f[l][j-1]+\Sigma_{t=l+1}^{i-1}\)不能影响到的村庄的 ...

  3. 软件项目技术点(7)——在canvas上绘制自定义图形

    AxeSlide软件项目梳理   canvas绘图系列知识点整理 图形种类 目前我们软件可以绘制出来的形状有如下这几种,作为开发者我们一直想支持用户可以拖拽的类似word里面图形库,但目前还没有找到比 ...

  4. CSS性能优化新属性:will-change

    ---恢复内容开始--- will-change属性通过告诉浏览器什么属性.什么元素将会发生变化,可以对这些操作进行可能性的优化,由此提高CSS动画的执行效率. 这个属性可以有4个值: auto: 实 ...

  5. <Android Framework 之路>BootAnimation(1)

    介绍 开机动画,BootAnimation,就是Android手机开机郭晨各种以一个展示给用户的界面,实际是一个多个帧组成的动画,在界面上进行一帧一帧的播放,形成开机动画的效果. 本文针对Androi ...

  6. Ubuntu 18 使用docker安装rancher/server:stable并运行kubernetes

    1.安装docker sudo apt-get install docker.io docker的版本:Docker version 17.12.1-ce 2.安装virtualbox-qt,因为vi ...

  7. Java——实现对密码进行MD5加密

    package common; /** *@author作者 E-Mail: *@version 创建时间:2015-9-24+下午01:22:44 *类说明 **/ import java.secu ...

  8. Python爬虫教程-19-数据提取-正则表达式(re)

    本篇主页内容:match的基本使用,search的基本使用,findall,finditer的基本使用,匹配中文,贪婪与非贪婪模式 Python爬虫教程-19-数据提取-正则表达式(re) 正则表达式 ...

  9. Python爬虫教程-12-爬虫使用cookie爬取登录后的页面(人人网)(上)

    Python爬虫教程-12-爬虫使用cookie(上) 爬虫关于cookie和session,由于http协议无记忆性,比如说登录淘宝网站的浏览记录,下次打开是不能直接记忆下来的,后来就有了cooki ...

  10. Android Animation 知识点速记备忘思维导图

    备注的大段文本,无法在图片中体现, 思维导图源文件放在附件中.使用 Xmind 8 制作. 附件:AndroidAnimation-xmind.zip