1
2
3
4
5
6
7
8
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-4, 4, 30) # [-4, 4] 中长度为 30 的等差数列
y = np.sin(x) # 获得 sin 值
plt.plot(x, y) # 以 x 为自变量,y 为因变量,绘制折线图
plt.show() # 显示图像,程序阻塞
plt.savefig('myFig.png') # 保存图像, 可以设置 dpi=1200/600/300 调整清晰度

字符 颜色 字符 颜色 字符 颜色 字符 颜色
b 蓝色 r 红色 m 洋红色 k 黑色
g 绿色 c 青色 y 黄色 w 白色
全称 颜色 全称 颜色 全称 颜色 全称 颜色
pink 粉色 sky blue 天蓝色 orange 橘色 light green 嫩绿色
light purple 嫩紫色 lavender 粉紫色 tan 褐色 aqua 海绿色
字符 标记 字符 标记 字符 标记 字符 标记
. 点标记 > 右三角标记 p 五边形标记 D 菱形标记
, 像素标记 1 三叉戟标记 * 星形标记 d 菱形标记
o 圆圈标记 2 三叉戟标记 h 六角形标记 竖线标记
v 倒三角标记 3 三叉戟标记 H 六角形标记 _ 横线标记
^ 正三角标记 4 三叉戟标记 + +标记
< 左三角标记 s 正方形标记 x x标记
字符 格式 字符 格式 字符 格式 字符 格式
- 实线 -- 虚线 -. 点划线 : 点线

1
matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

1
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, **kwargs)

1
matplotlib.pyplot.contour(x, y, Z, [levels], **kwargs)

1
2
3
4
5
u = np.linspace(-1, 1, 50)
v = np.linspace(-1, 1, 50)
U, V = np.meshgrid(u, v) # 生成 50x50 网格点矩阵
z = (map_feature(U.flatten(), V.flatten()) @ theta).reshape((50, 50)) # 计算等高线
plt.contour(u, v, z, [0], colors='r') # 绘制轮廓图,取高度为 0 的点

1
2
matplotlib.pyplot.imshow(X, cmap=None, interpolation=None, **kwargs)
matplotlib.pyplot.colorbar()

1
matplotlib.pyplot.hist(x, bins=None, range=None, **kwargs)

1
ax = fig.add_axes(rect, projection=None, polar=False, **kwargs)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
fig = plt.figure(figsize=(10, 7))

# 创建子图
ax1 = fig.add_axes([0, 0.5, 0.45, 0.45]) # 在图表的左上角创建一个子图
ax2 = fig.add_axes([0.5, 0, 0.45, 0.45]) # 在图表的右下方创建一个子图

# 左上角子图:曲线图
x1 = np.linspace(-10, 10, 100)
ax1.plot(x1, np.sin(x1), color="red")

# 右下角子图:柱状图
x2 = ["a", "b", "c", "d", "e", "f"]
y2 = [1.2, 1.3, 2.5, 0.25, 5, 1.56]
ax2.bar(x2, y2, color="blue")

1
ax = matplotlib.pyplot.subplot(nrows=1, ncols=1, index, **kwargs)

1
2
3
4
5
6
7
fig = plt.figure(figsize=(10, 7))  # 如果对整体有标题、标签,在此处添加

ax1 = plt.subplot(1,2,1)
ax1.plot() # 如果对子图有标题、标签,在此处添加

ax2 = plt.subplot(1,2,2)
ax2.plot() # 如果对子图有标题、标签,在此处添加

1
fig, axes = matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, **fig_kw)

1
2
3
4
5
6
7
8
9
10
11
12
# 创建一个图形对象,拆分为2*3的网格,包含6个坐标对象
fig, axes = plt.subplots(
nrows=2, # 定义行数
ncols=3, # 定义列数
sharex=True, # 是否共享x轴坐标
sharey=True, # 是否共享y轴坐标
figsize=(10, 7) # 图像大小
)

for i in range(2):
for j in range(3):
axes[i, j].plot()

1
grid = matplotlib.gridspec.GridSpec(nrows, ncols, figure=None, **kwargs)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fig = plt.figure(figsize=(10, 7))

grid = plt.GridSpec(nrows=2, ncols=3, figure=fig) # 创建 2*3 的网格蓝图

# 合并子图
ax1 = plt.subplot(grid[0, 0])
ax2 = plt.subplot(grid[0, 1:]) # 合并(0,1)和(0,2)位置的子图
ax3 = plt.subplot(grid[1, 0:2]) # 合并(1,0)和(1,1)位置的子图
ax4 = plt.subplot(grid[1, 2])

x = np.linspace(0, 10, 30)

ax1.plot(x, np.sin(x), "-r")
ax2.plot(x, np.cos(x), "-ob")
ax3.plot(x, np.sin(x + 10), "-oy")
ax4.plot(x, np.cos(x + 10), "-g")

1
2
3
4
5
6
from matplotlib import pyplot as plt

%matplotlib inline
plt.rcParams['figure.figsize'] = (10.0, 8.0)
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

1
2
3
ax = plt.gca()
ax.axes.xaxis.set_ticklabels([])
ax.axes.yaxis.set_ticklabels([])