Matplotlib 入门
Pyplot 简介
matplotlib.pyplot
接口使得 matplotlib 可以像 MATLAB 那样工作,例如创建图片、在图片中创建绘图区域、在绘图区域中绘制线条等。
为了使用 matplotlib.pyplot
API,首先需要导入该模块:
1import matplotlib.pyplot as plt
安装 Matplotlib
使用 conda
进行安装:
1conda install matplotlib
使用 pip
进行安装:
1pip install matplotlib
一个简单的示例
绘制正弦函数:
1import numpy as np
2import matplotlib.pyplot as plt
3
4# x 轴坐标
5x = np.linspace(0, 2 * np.pi, 100)
6
7# y 轴坐标
8y = np.sin(x)
9
10# 创建图片和 axes
11_, ax = plt.subplots()
12
13# 绘制
14ax.plot(x, y)
15
16# 显示图片
17plt.show()
绘制简单的折线图
绘制一条简单的折线图:
1plt.plot([4, 1, 3, 2]) # 绘制折线图
2plt.ylabel('some numbers') # 设置 y 轴标签
3plt.show() # 显示图片
绘制平方函数:
1plt.plot(range(101), [i ** 2 for i in range(101)]) # 绘制折线图
2plt.xlabel('x') # 设置 x 轴标签
3plt.ylabel('x^2') # 设置 y 轴标签
4plt.show() # 显示图片
绘制正弦函数:
1x = np.arange(0, 2 * np.pi, 0.1) # x 轴坐标
2y = np.sin(x) # 计算 y 轴坐标
3plt.plot(x, y, 'k-', linewidth=1.5, ) # 绘制折线图,k- 为格式化字符串,其中 k 表示黑色,- 表示实线, 线宽为 1.5 像素
4plt.xlabel('x') # 设置 x 轴标签
5plt.ylabel('y') # 设置 y 轴标签
6plt.show() # 显示图片
pyplot
可以指定线的颜色和格式,默认的格式为 b-
, 即蓝色实线,如果想要用其他图例,例如红色实心圆形,可以设置格式为 ro
。
绘制散点图:
1plt.plot([i ** 2 for i in range(5)], 'ro') # 绘制散点图,格式为红色实心圆心
2plt.show() # 显示图片
pyplot
兼容 numpy
里的数组,并且可以在一个图表里绘制多条曲线,示例如下:
1import numpy as np
2
3x = np.arange(-2., 2., 0.1) # x 轴坐标
4plt.plot(x, x, 'b-', x, x ** 2, 'r--', x , x ** 3, 'g-.') # 绘制 y = x, y = x^2 和 y = x^3 共三条曲线
5plt.show() # 显示图片
绘制直方图
绘制人类智商分布的直方图:
1mu, sigma = 100, 15 # 正态分布参数
2x = mu + sigma * np.random.randn(10000) # x 轴坐标
3plt.hist(x, 50, density=True, facecolor='g', alpha=0.75) # 绘制密度直方图,桶数量为 50,颜色为绿色,alpha 值为 0.75
4plt.xlabel('Smarts', fontsize=16, color='black') # 设置 x 轴标签内容、字号、颜色
5plt.ylabel('Probability', fontsize=16, color='black') # 设置 y 轴标签内容、字号、颜色
6plt.title('Histogram of IQ', fontsize=20) # 设置标题内容、字号
7plt.text(45, .026, r'$\mu=100,\ \sigma=15$', fontsize=14) # 在指定位置绘制文本并设置字号
8plt.axis([40, 160, 0, 0.03]) # 设置 x 轴和 y 轴显示范围
9plt.grid(True) # 绘制网格
10plt.show() # 显示图片
添加注解
1t = np.arange(0.0, 5.0, 0.01) # x 轴坐标
2s = np.cos(2*np.pi*t) # y 轴坐标
3line, = plt.plot(t, s, lw=2) # 绘制折线图,线宽为 2 像素
4plt.annotate('local max', # 添加注解
5 color = 'red', # 颜色为红色
6 fontsize=18, # 字号为 18
7 xy=(2, 1), # 箭头坐标
8 xytext=(3, 1.5), # 注解坐标
9 arrowprops=dict(facecolor='red', shrink=0.01), # 设置箭头格式
10 )
11plt.ylim(-2, 2) # 设置 y 轴显示范围
12plt.show() # 显示图片