python 用 matplotlib 绘制组合图形 1
1、加载库
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
2、绘制图形
# 定义数据
np.random.seed(428)
x = np.linspace(0.5, 3.5, 100) # 在 [a, b] 间隔均匀的 100 个数
y1 = np.sin(x)
y2 = np.random.randn(100)
# 图表元素中正常显示中文字符
mpl.rcParams['font.sans-serif'] = 'SimHei'
# 坐标轴刻度标签正常显示负号
mpl.rcParams['axes.unicode_minus'] = False
# 设置画布
fig = plt.figure(figsize=(14, 8), # 画布大小
facecolor='lightyellow') # 画布的背景色
# 折线图
plt.plot(x, y1,
ls='-.',
lw=2,
label='正弦曲线')
# 散点图
plt.scatter(x, y2,
color='0.6', # 标记点的灰度值颜色
edgecolor='green', # 标记点的边线颜色
linewidth=0.25, # 标记点边线的宽度
label='散点')
# 设置坐标轴的刻度范围
plt.xlim(xmin=0, # x 轴上的最小值
xmax=4) # x 轴上的最大值
plt.ylim(ymin=-3, # y 轴上的最小值
ymax=3); # y 轴上的最大值
# 设置坐标轴标题
plt.xlabel(s='x 轴', size=12, color='cyan')
plt.ylabel(s='y 轴', size=12, color='cyan')
# 设置坐标轴刻度
plt.xticks(size=14, color='grey')
plt.yticks(size=14, color='grey')
# 设置图形标题
plt.title(s='matplotlib 的图形结构', # 标题的文本内容
size=18, # 标题文本的字体大小
color='k') # 标题文本的颜色
# 设置图例
plt.legend(fontsize=14)
# 添加水平参考线
plt.axhline(y=0, # 参考线的垂直与 y 轴的刻度
linestyle='--', # 参考线的线条风格 破折线
color='red', # 参考线的颜色 红色
linewidth=2) # 参考线的线条宽度
# 添加垂直参考区域
plt.axvspan(xmin=1.0, # 参考区域的其实位置
xmax=2.0, # 参考区域的终止位置
facecolor='yellow', # 参考区域的填充颜色
alpha=0.3) # 参考区域填充颜色的透明度
# 添加指向型文本注释
## 对极值点的指向指向型注释
plt.annotate(s='极大值点(π/2, 1)', # 注释的内容文本
xy=(np.pi/2, 1), # 被注释内容的坐标位置
xytext=(np.pi/2+1.0, 0.8), # 注释文本的坐标位置
weight='bold', # 注释文本的字体粗细风格
color='red', # 注释文本的字体颜色
# 指示注释内容的箭头的属性字典
arrowprops=dict(arrowstyle='->', # 箭头风格
connectionstyle='arc3',
color='red')) # 箭头颜色
## 对区域的注释
### 箭头
plt.annotate(s='区域', # 注释的内容文本
xy=(0.75, -3), # 被注释内容的坐标位置
xytext=(0.35, -2.25), # 注释文本的坐标位置
weight='bold', # 注释文本的字体粗细风格
color='blue', # 注释文本的字体颜色
# 指示注释内容的箭头的属性字典
arrowprops=dict(arrowstyle='->', # 箭头风格
connectionstyle='arc3',
color='blue')) # 箭头颜色
### 箭头
plt.annotate(s='', # 注释的内容文本
xy=(0, -2.78), # 被注释内容的坐标位置
xytext=(0.4, -2.32), # 注释文本的坐标位置
# 指示注释内容的箭头的属性字典
arrowprops=dict(arrowstyle='->', # 箭头风格
connectionstyle='arc3',
color='blue')) # 箭头颜色
## 对刻度线的注释
plt.annotate(s="'|'是刻度线", # 注释的内容文本
xy=(3.5, -2.89), # 被注释内容的坐标位置
xytext=(3.6, -2.7), # 注释文本的坐标位置
size=10, # 字体大小
weight='bold', # 注释文本内容的字体粗细风格
color='blue', # 注释内容的字体颜色
# 指示注释内容的箭头的属性字典
arrowprops=dict(arrowstyle='->', # 箭头风格
connectionstyle='arc3',
color='blue')) # 箭头颜色
## 对刻度标签的的注释
plt.text(x=3.6, # 注释内容所在的横轴坐标
y=-2.95, # 注释内容所在的纵轴坐标
s='3.5 是刻度标签', # 注释的文本内容
size=10, # 字体大小
weight='bold', # 注释文本内容的字体粗细风格
color='blue'); # 注释内容的字体颜色
# 设置网格线
plt.grid(b=True,
ls=':', # 线条样式为虚线
color='Magenta', # 网各线颜色为品红
alpha=0.55); # 网格线透明度
图形
非学无以广才,非志无以成学。