Matplotlib是一个用Python实现的绘图库。现在很多机器学习,深度学习教学资料中都用它来绘制函数图形。在学习算法过程中,Matplotlib是一个非常趁手的工具。

一般概念

图形(figure)
类似于画布,它包含一个或多个子坐标系(axes)。至少有一个坐标系才能有用。

下面是一段简单的示例代码,只是创建了一个子坐标系

import matplotlib.pyplot as plt
import numpy as np fig = plt.figure() #空figure,没有坐标系.
fig.suptitle("No Axes on this figure") #设置顶部标题 fig, ax_lst = plt.subplots(2, 2) #一个2 x 2 网格的的坐标系

坐标系(Axes): figure的绘图区域。一个figure只能有可以有多个Axes,但一个Axes只能位于一个figure中。一个Axes包含两个(在3D情况下有3个)坐标轴(Axis),Axis的主要作用是限制数据的范围(可使用Axes的set_xlim()和set_ylim()方法设限制)。每个坐标系有一个标题(title),使用set_title()设置,一个x轴标签(x-label,使用set_xlabel()设置),一个y轴标签(y-label,使用set_ylabel()设置)。

坐标轴(Axis): 类似于数字线( number-line-like)的对象,可设置图表的限制并生成刻度和刻度标签。Locator对象用来决定刻度的位置。刻度标签字符串使用Formattor格式化。恰当的Locator和Formattor组合可以有效地控制刻度位置可刻度标签。

画家(Artist): 一般来说,所有你能在figure中看到的都使用一个画家(Artist)(包括Figure, Axes和Axis对象),这其中包含:文本对象(Text), 2D线条(line2D), 集合对象,点(Path)对象等等。当一个figure被渲染时,所有的Artist都会在画布上回绘图。大多数Artist被绑定在一个Axes上,不能被多个Axes共享,或从一个Axes移动到另一个。

绘图函数的输入类型

所有的绘图函数期待的输入类型是np.array或np.ma.masked_array。看起来像数组的类比如np.martrix可能能正常使用。

Matplotlib,pyplot和pylab之间的关系

Matplotlib是整个包,matplotlib.pyplot是Matplotlib中的一个模块。
对pyplot模块中的函数来说,总是有一个"当前的"figure和axes。例如在下面的例子中,第一次调用pyplot.plot会创建一个axes,接下来的一系列pyplot.plot调用回向同一个axes中添加多条线,plt.xlabel, plt.ylabel, plt.title and plt.legend调用回在这个axes中添加标签,标题和图例。

x = np.linspace(0, 2, 100)

plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic') plt.xlabel('x label')
plt.ylabel('y label') plt.title("Simple Plot") plt.legend() plt.show()
这段代码输出的图形如下。可以把最后一行的plt.show(),改成plt.savefig("simplePlot.png"),把图形输出成png格式的文件。

pylab是一个可方便地把matplotlib.pyplot和numpy批量导入到一个独立命名空间的模块,现已被弃用,建议使用pyplot代替。

Matplotlib入门简介的更多相关文章

  1. 掌握 Ajax,第 1 部分: Ajax 入门简介

    转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...

  2. MongoDB入门简介

    MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...

  3. (转)Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  4. NodeJS入门简介

    NodeJS入门简介 二.模块 在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. const http = require ...

  5. ASP.NET Core学习之一 入门简介

    一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问 ...

  6. webservice入门简介

    为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...

  7. Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  8. Android精通教程-第一节Android入门简介

    前言 大家好,给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease to be ...

  9. Nginx入门简介

    Nginx入门简介 Nginx 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二 ...

随机推荐

  1. WebShell代码分析溯源(一)

    WebShell代码分析溯源(一) 一.一句话变形马样本 <?php $_GET['POST']($_POST['GET']);?> 二.代码分析 1.调整代码格式 <?php $_ ...

  2. zookeeper - 通过java代码连接zookeeper(2)

    首先创建一个Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  3. django-模板之静态文件加载(十四)

    1.在templates同级目录下建static 2.index.css 3.index.html {% load static %} <!DOCTYPE html> <html l ...

  4. java中的时区转换

    目录 java中的时区转换 一.时区的说明 二.时间的表示 三.时间戳 四.Date类和时间戳 五.java中的时区转换 java中的时区转换 一.时区的说明 地球表面按经线从东到西,被划成一个个区域 ...

  5. 第七章 文件与I/O(4)

    文件共享 打开文件内核数据结构 一个进程两次打开同一个文件 一个进程能打开1024个文件描述符,没打开一个文件,内核会生成一个文件表,文件表中的v节点指针指向v节点表,v节点部分信息就是stat函数返 ...

  6. C语言I—2019秋作业01

    1您对软件工程专业或计算机科学与技术专业了解是什么? 工程专业将成为一个新的热门专业.软件工程专业以计算机科学与技术学科为基础,突出软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上 ...

  7. 蓝牙耳机没声音,用mac平台下的safari时

    买了个蓝牙耳机,发现用其他本地播放器或者chrome的时候有声音, 但是用safari的时候没有声音,最后发现是flash的问题. 只要清除浏览数据后刷新就有声音了

  8. android 7.0 pm install 失败问题

    这两天,把app内置成系统文件或者系统签名取得系统权限,发现使用pm install path在低版本上可行,在高版本就安装失败 抛出 NullPointException,查看了一下源码,发现对包名 ...

  9. CSPS模拟 72

    状态..找不回来了.. T2 简单的期望 考试的时候忘考虑一个事,就是连续多位进位的情况 考试的时候打出$n^2$复杂度dp还没引起怀疑真是不应该. T3 简单的操作 最后一刻才想到图不联通,已经想不 ...

  10. CSPS模拟 43

    我这次把考试题改完了 T1 A 发现S*b必须和T模a同余? 貌似乘不了几次就爆T了?可以暴力? 也许乘的越多越好? 内心:切了 另外怎么设置鼠标指到黑块上边就显示字那种东西 最后当然是因为低错没有A ...