效果图如下
注意, markdown 在 linux 系统中, 图片位置要和 .md 文件在同一个文件夹下面, 图片保存在其他路径下面, 无论是用 / 根目录的绝对路径, 还是用 …/ 相对路径的方式, 在预览中都无法渲染图片。
import matplotlib.pyplot as plt
width=4
height=width*0.618
fig, ax = plt.subplots(figsize=(width, height))
figsize() 表示设置宽度和高度, 一张图的情况下 比例 height/width = 0.618 正好。
fig 表示整张图, ax 表示一个 XY 坐标, 使用以下代码可以在一个 fig 中创建多个 ax(多个XY坐标)
fig, (ax0,ax1,ax2) = plt.subplots(3,1,figsize=(4, 4.5),sharex=True)
datas = {
'A': [[1, 2., 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
[
0., 0.5, 0.75, 0.86, 0.87, 0.88,
0.86, 0.86, 0.87, 0.86,
0.88, 0.87, 0.88
]],
'B': [[1, 2., 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
[
0., 0.3, 0.6, 0.65, 0.66, 0.64,
0.65, 0.65, 0.64, 0.66,
0.65, 0.66, 0.65
]],
'C': [[1, 2., 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
[
0., 0.2, 0.43, 0.46, 0.47,
0.47, 0.46, 0.46, 0.48, 0.47,
0.46, 0.47, 0.47
]],
}
这里在一张图中同时画 3 条线, 3 条线的横坐标一致
styles = {
'A': ['8', 'g', (0, (5, 1))],
'B': ['s', 'orange', (0, (2, 1))],
'C': ['v', 'r', (0, (4, 1, 1, 1, 1, 1))]
} # marker, color, linestyle, markersize(default)
for _, line_id in enumerate(datas):
data = datas[line_id]
x = data[0]
y = data[-1]
x = np.array(x, dtype=np.int)
ax.plot(x,
y,
marker=styles[line_id][0],
color=styles[line_id][1],
linestyle=styles[line_id][2],
label=line_id)
font1 = {
'weight': 'medium',
'size': 12,
} # 设置字体粗细, 大小
# 设置横纵坐标
ax.set_ylabel('YYY', font1)
ax.set_xlabel('XXX', font1)
# 设置标题
ax.set_title('title = ZZZ', fontsize=11)
ax.grid() # 显示网格
ax.legend() # 显示图例
plt.tight_layout() # 自动调整布局
fig.savefig('result.png')
plt.close()