Matplotlib笔记(一)
2016-12-07 22:09
337 查看
Table of Contents
1. 使用python+matplotlib作二维图1.1. 简介
1.2. 快速绘图
1.3. 控制线型
1.4. 绘制多轴图
使用python+matplotlib作二维图
简介
matplotlib是python下一个用于2D绘图的库. matplotlib的作者最开始是matlab的忠实用户, 但随着研究的深入, 他发现matlab已经不能满足他的需求, 而且也没有发现其他的绘图软件能满足. 于是作为程序员的作者撸起袖子从头开始用python写一个绘图库, 这就是matplotlib的来历. matplotlib提供了一整套和matlab相似的命令, 十分适合交互式地进行制图. 而且也可以方便地将它作为绘图控件, 嵌入GUI应用程序中. matplotlib的功能极其丰富, 官网上有各式各样gallery,并且能够获得它的源码和PDF文件.在使用matplotlib前首先要熟悉NumPy, NumPy是一个支持多维数组的科学计算库. matplotlib的数据都是以NumPy的数组形式存储的.
快速绘图
matplotlib绘图的思想比较简单, 首先你有数据. 数据往往是以数组的形式存放, 然后建立一个绘图对象plot, 其他的绘图特征都是以对象的形式添加到plot对象上的. 下面是一个最简单的例子:import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show()
在上面的代码中, 如果
plot中只有一个数据
[1,2,3,4], 则将其默认为是
y轴, 对于
x轴自动为其赋值. 这里
x的数据默认为
[0,1,2,3].
plot()是一个非常丰富的函数, 它有一系列命令, 使用这些命令可以实现不同的绘图功能. 如果要汇出
x vs y的图片, 可以使用如下的命令:
plt.plot([1,2,3,4],[1,4,9,16])
有时我们希望给线条不同的颜色和形状, 也是可以通过plot命令实现的, 默认的是
'b-', 代表着蓝色实线, 下面的例子是一个红圈表示的例子:
import matplotlib.pyplot as plt plt.plot([1,2,3,4],[1,4,9,16], 'ro') plt.axis([0,6,0,20]) plt.ylabel('some numbers') plt.show()
上面代码中, 多了
axis()这个函数, 它的作用是设置
x和
y轴的范围分别是
[0,6]和
[0,20].
控制线型
matplotlib提供了非常丰富的线的性质, 可以根据自己的需求选择线型. 常用的有如下的几种:Property | Value Type |
---|---|
label | any string |
marker | ‘+’ / ‘,’ / ‘.’ / ‘1’/ ‘2’ / ‘3’ / ‘4’ |
linewidth | float value in points |
linstyle | ‘-’ / ‘—’ / ‘:’ |
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 1000) y = np.sin(x) z = np.cos(2*x) # 设置图像的尺寸8*4 plt.figure(figsize=(8,4)) # 绘图, 选择颜色, 线条宽度和线型 plt.plot(x,y,label='$sin(x)$',color='r',linewidth=1.2, linestyle='--') plt.plot(x,z,label='$cos(x^2)$',color='g',linewidth=1.2, linestyle=':') plt.plot(x,np.sin(x/2),label='$sin(x/2)$',color = 'b',linewidth=1.2, linestyle='-') #x轴的label plt.xlabel("Time(s)") #y轴的label plt.ylabel("Volt") #图的名字 plt.title("PyPlot First Example") #y轴的刻度 plt.ylim(-1.2,1.2) #显示各个图的legend plt.legend() plt.show()
绘制多轴图
论文中经常出现将多个图在同一个轴上进行绘制的情况. 在matplotlib中可是用 subplot解决. 如下:# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt #定义函数f(t) def f(t): return np.exp(-t) * np.cos(2*np.pi*t) t1 = np.arange(0.0, 5.0, 0.1) t2 = np.arange(0.0, 5.0, 0.02) #开始绘图 plt.figure(1) plt.subplot(211) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k') plt.subplot(212) plt.plot(t2, np.cos(2*np.pi*t2), 'r--') plt.show()
上图中,
figure(1)表示图片整体,
subplot(211)表示2个图中的第一个.
subplot(212)表示2个图中的第二个.
以上只是matplotlib功能中很小的一部分, 但是已经包含最常用的用法, 可以作为一个起点. 更复杂和精致的绘图可以参考matplotlib的官方网站.
相关文章推荐
- python学习笔记(1)之如何在python3.x下安装PIL、numpy以及matplotlib
- Python-学习笔记(三)——开发环境搭建(numpy,scipy,matplotlib)
- python数据分析学习笔记-Numpy-Matplotlib-Pandas
- python Matplotlib 学习笔记(2)
- [笔记]SciPy、Matplotlib基础操作
- Matplotlib 学习笔记
- networkx使用笔记(三)之好汉篇Matplotlib(4)
- 【python学习笔记】12:用matplotlib绘制3D函数图像
- 【python笔记】使用matplotlib,pylab进行python绘图
- matplotlib作图学习笔记1
- python学习笔记(matplotlib下载安装)
- Matplotlib 学习笔记
- 【python笔记】使用matplotlib,pylab进行python绘图
- python 制作图表 matplotlib - 千月的python linux 系统管理指南学习笔记(18)
- matplotlib学习笔记--Legend
- Matplotlib学习笔记
- matplotlib 学习笔记(一)
- 【Python_OpenCv】笔记2:Matplotlib和OpenCv在python中的混合编程
- matplotlib和numpy 学习笔记
- matplotlib 学习笔记(二)