第六章 知识总结
本文对之前的关于matplotlib的知识进行 系统性总结,便于知识梳理和归纳,为后续打好基础,或者面试使用
Matplotlib 采用 三层架构:
TkAgg、
Qt5Agg、
Agg(无界面)等)``
python import matplotlib matplotlib.use('Agg') # 必须在 import pyplot 前设置 ``
pyplotplt.plot())✅ 建议:简单绘图用
pyplot,复杂/可复用图表用 面向对象 API(fig, ax = plt.subplots())
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 2])
plt.title("Title")
plt.show()
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 4, 2])
ax.set_title("Title")
plt.show()
| 图表类型 | 函数 | 典型用途 |
|---|---|---|
| 折线图 |
ax.plot(x, y) |
趋势、时间序列 |
| 散点图 |
ax.scatter(x, y, c=..., s=...) |
变量关系、聚类 |
| 柱状图 |
ax.bar(categories, values) |
类别比较 |
| 水平柱状图 |
ax.barh(...) |
类别名较长时 |
| 饼图 |
ax.pie(sizes, labels=..., autopct=...) |
构成比例(≤5类) |
| 直方图 |
ax.hist(data, bins=...) |
数据分布 |
| 箱线图 |
ax.boxplot(data) |
分布离散度、异常值 |
| 热力图 |
ax.imshow(matrix, cmap=...) 或
sns.heatmap() |
矩阵、相关性 |
| 填充面积图 |
ax.fill_between(x, y1, y2) |
区间范围 |
ax.set_title("Main Title", fontsize=14)
ax.set_xlabel("X Label")
ax.set_ylabel("Y Label")
ax.set_xticks([0, 1, 2]) ax.set_xticklabels(['A', 'B', 'C']) ax.grid(True, linestyle='--', alpha=0.5)
ax.plot(x, y1, label='Series 1') ax.plot(x, y2, label='Series 2') ax.legend(loc='upper left')
color='red'、
'#FF5733'、
[0.1, 0.8, 0.3]linestyle='--' 或
ls=':'marker='o',
markersize=8fig, axs = plt.subplots(2, 2, figsize=(10, 8)) axs[0, 0].plot(...) plt.tight_layout() # 自动防重叠
⚠️
plt.imread/imsave已弃用,建议用 Pillow 或 imageio
| 功能 | 推荐方式 |
|---|---|
| 读图 |
np.array(Image.open('img.jpg')) |
| 显示 |
ax.imshow(img) |
| 保存 |
Image.fromarray(arr).save('out.png') |
# 方法1:全局设置(Windows)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示
# 方法2:指定字体路径(跨平台)
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/path/to/simhei.ttf")
ax.set_title("标题", fontproperties=my_font)
``
python sns.set_style("whitegrid") sns.set_palette("Set2") ``
``
python fig, ax = plt.subplots() sns.boxplot(data=df, x='category', y='value', ax=ax) ax.set_title("Custom Title via Matplotlib") ``
✅ Do’s
figsize 控制画布大小dpi=300 +
bbox_inches='tight' 保存高清图plt.subplots() +
tight_layout()❌ Don’ts
plt.plot(...)(
... 是 Ellipsis,会报错!)plt.close()# 全局设置示例
plt.rcParams.update({
'figure.figsize': (10, 6),
'font.size': 12,
'lines.linewidth': 2,
'axes.grid': True,
'axes.spines.top': False,
'axes.spines.right': False
})
matplotlib.get_backend()matplotlib.font_manager.findSystemFonts()plt.clf();关闭窗口:
plt.close()%matplotlib inline📌 一句话总结: “简单用 pyplot,复杂用 axes;中文设字体,多图用 subplots;高清靠 savefig,美观靠 Seaborn。”
python过渡项目部分代码已经上传至gitee,后续会逐步更新。
公众号:咚咚王 gitee: https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》 《利用Python进行数据分析》 《算法导论中文第三版》 《概率论与数理统计(第四版) (盛骤) 》 《程序员的数学》 《线性代数应该这样学第3版》 《微积分和数学分析引论》 《(西瓜书)周志华-机器学习》 《TensorFlow机器学习实战指南》 《Sklearn与TensorFlow机器学习实用指南》 《模式识别(第四版)》 《深度学习 deep learning》伊恩·古德费洛著 花书 《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》 《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》 《自然语言处理综论 第2版》 《Natural-Language-Processing-with-PyTorch》 《计算机视觉-算法与应用(中文版)》 《Learning OpenCV 4》 《AIGC:智能创作时代》杜雨+&+张孜铭 《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》 《从零构建大语言模型(中文版)》 《实战AI大模型》 《AI 3.0》
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70048224/viewspace-3103958/ ,如需转载,请注明出处,否则将追究法律责任。