Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
首先我们来看下Matplotlib的一些简单的基础知识:
1. Matplotlib中的基本图表包括的元素
-
x轴和y轴:水平和垂直的轴线
-
x轴和y轴刻度:刻度标示坐标轴的分隔,包括最小刻度和最大刻度
-
x轴和y轴刻度标签:表示特定坐标轴的值
-
绘图区域:实际绘图的区域。
2. hold属性
hold属性默认为True,即允许在一幅图中绘制多个曲线;将hold属性修改为False,每一个plot都会覆盖前面的plot。但是目前不推荐去动hold这个属性,因这种做法会有警告。所以,使用默认设置即可。
3. 网格线
-
grid方法
使用grid方法为图添加网格线
设置grid参数(参数与plot函数相同)
.lw代表linewidth,线的粗细
.alpha表示线的明暗程度
-
axis方法
如果axis方法没有任何参数,则返回当前坐标轴的上下限
-
xlim方法和ylim方法
除了plt.axis方法,还可以通过xlim,ylim方法设置坐标轴范围
-
legend方法
在legend方法中传入字符串列表。
下面我们来练习一些简单的作图:
1. 画一条直线
import matplotlib.pyplot as plt
import numpy as np
# 生成一个1-99的列表
x = np.arange(1,100)
y = 4*x + 3
# 第一个是横坐标的值,第二个是纵坐标的值
plt.plot(x, y)
# 必要方法,显示设置好的figure对象
plt.show()
2. 画一条曲线
x = np.arange(1,100)
y = x**2 + 3
plt.plot(x, y)
plt.show()
3. 画多张图,图中多条线
x = np.arange(1,100)
y1 = 3*x + 2
y2 = x**2 + 5
# 使用figure()函数重新申请一个figure对象
plt.figure()
plt.plot(x, y1)
# 使用figure()函数重新申请一个figure对象,注意,每次调用figure的时候都会重新申请一个figure对象
# 第一个参数表示的是编号,第二个表示的是图表的长宽
plt.figure(num = 3, figsize=(8, 5))
# 当我们需要在画板中绘制两条线的时候,可以使用下面的方法:
plt.plot(x, y1)
plt.plot(x, y2,
linestyle='--', # 线样式
linewidth=1.4, # 线宽
color='b' # 线 )
plt.show()
4. 一图中包含多个小图(1)
x = np.arange(1,100)
y1 = 3*x + 2
y2 = x**2 + 5
# 作图1
# 221表示每行每列分别添加2幅图共2x2幅,目前添加第1幅图
plt.subplot(221)
plt.plot(x, y1,color=’r’)
# 作图2
plt.subplot(222)
plt.plot(x, -y1)
# 作图3
plt.subplot(223)
plt.plot(x, y2,color=’g’)
plt.grid(color='r',linewidth=1, linestyle='--', alpha=0.3 )
# 作图4
plt.subplot(224)
plt.plot(x, np.log(y2))
plt.show()
5. 一图中包含多个小图(2)
x = np.arange(1,100)
y1 = 3*x + 2
y2 = x**2 + 5
# 作图1
# 添加3x3幅图
plt.subplot(331)
plt.plot(x, y1,color=’r’)
# 作图2
plt.subplot(332)
plt.plot(x, -y1)
# 作图3
plt.subplot(333)
plt.plot(x, y2,color=’g’)
plt.grid(color='r', linewidth=1, linestyle='--', alpha=0.3 )
# 作图4
plt.subplot(334)
plt.plot(x, np.log(y2))
plt.show()
6. 画正弦余弦函数曲线
x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
# 获得余弦函数
C = np.cos(x)
# 获得正弦函数
S = np.sin(x)
plt.plot(x,C, color='r', linestyle='--')
plt.plot(x,S,color='c')
plt.show()
以上是使用Matplotlib绘制的一些简单的图,更加复杂的图像,感兴趣的可以查看Matplotlib手册。