[AI工具从入门到入土] matplotlib

AI工具从入门到入土 matplotlib🎨

个人导航

知乎:https://www.zhihu.com/people/byzh_rc

CSDN:https://blog.csdn.net/qq_54636039

注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码

参考文章:各方资料

文章目录

  • [AI工具从入门到入土 matplotlib:art:](#[AI工具从入门到入土] matplotlib:art:)
  • 个人导航
  • :pushpin:规范
        • [1. `plt`方式](#1. plt方式)
        • [2. `ax`方式](#2. ax方式)
  • :gear:导入
  • :gear:全局设置
  • :framed_picture:画布
  • 基础细节
        • [1. 标题](#1. 标题)
        • [2. 图例](#2. 图例)
        • [3. 坐标轴标签](#3. 坐标轴标签)
        • [4. 坐标轴刻度](#4. 坐标轴刻度)
        • [5. 边框](#5. 边框)
        • [6. 网格线](#6. 网格线)
  • 文本
  • 保存
  • [拓展 - 修改已有legend](#拓展 - 修改已有legend)
  • [拓展 - 排版](#拓展 - 排版)

📌规范

1. plt方式

全局级 -> 直接作用于当前图标

2. ax方式

对象级 -> 精准作用于指定对象

⚙️导入

py 复制代码
import matplotlib.pyplot as plt
from matplotlib.axes import Axes # 为ax提供类型提示

# 正常显示中文和负号
plt.rcParams['font.sans-serif'] = ['SimHei', 'Kaiti', 'Microsoft YaHei']  
plt.rcParams['axes.unicode_minus'] = False

⚙️全局设置

py 复制代码
plt.rcParams['font.size'] = 12       # 默认字体大小
plt.rcParams['axes.titlesize'] = 14  # 标题字体大小
plt.rcParams['axes.labelsize'] = 12  # 坐标轴标签字体大小
plt.rcParams['xtick.labelsize'] = 10 # x轴刻度字体大小
plt.rcParams['ytick.labelsize'] = 10 # y轴刻度字体大小
plt.rcParams['legend.fontsize'] = 10 # 图例字体大小

🖼画布

常用:

py 复制代码
plt.figure(figsize=(12, 6))

单图:

py 复制代码
# 麻烦
fig = plt.figure(figsize=(12, 6))
ax = plt.gca() # get current axes
py 复制代码
# 不推荐
fig = plt.figure(figsize=(12, 6))
ax = fig.add_subplot(111) # 1行1列第1个子图
py 复制代码
# 推荐
fig, ax = plt.subplots(figsize=(12, 6))

多图:

py 复制代码
fig, axs = plt.subplots(nrows=2, ncols=1, figsize=(12, 6), constrained_layout=True)

对于多图, 还可使用 axs = axs.flatten()

基础细节

1. 标题
py 复制代码
plt.title('xxx', fontsize=16, pad=20, fontweight='bold')
py 复制代码
ax.set_title('xxx', fontsize=16, pad=20, fontweight='bold')
2. 图例
py 复制代码
plt.legend(fontsize=17, loc='upper right')
plt.legend(fontsize=17, loc='lower left')
py 复制代码
ax.legend(fontsize=17, loc='upper right')
ax.legend(fontsize=17, loc='lower left')
3. 坐标轴标签
py 复制代码
plt.xlabel('xxx', fontsize=17, labelpad=10)
plt.ylabel('xxx', fontsize=17, labelpad=10)
py 复制代码
ax.set_xlabel('xxx', fontsize=17, labelpad=10) 
ax.set_ylabel('xxx', fontsize=17, labelpad=10)
4. 坐标轴刻度
复制代码
plt.xticks(fontsize=17)
plt.yticks(fontsize=17)
py 复制代码
ax.tick_params(axis='x', labelsize=17)
ax.tick_params(axis='y', labelsize=17)
5. 边框
py 复制代码
ax = plt.gca()
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
6. 网格线
py 复制代码
plt.grid(axis='x', linestyle='--', alpha=0.7, color='gray')
plt.grid(axis='y', linestyle='--', alpha=0.7, color='gray')
py 复制代码
ax.grid(axis='x', linestyle='--', alpha=0.7, color='gray')
ax.grid(axis='y', linestyle='--', alpha=0.7, color='gray')

文本

py 复制代码
plt.text(
    0.5, 0.5, 'xxx',
    ha='center', va='center',
    fontsize=14, fontweight='bold', color='#555555',
    transform=plt.gca().transAxes
)
py 复制代码
ax.text(
    0.5, 0.5, 'xxx',
    ha='center', va='center',
    fontsize=14, fontweight='bold', color='#555555',
    transform=plt.gca().transAxes
)

保存

py 复制代码
plt.savefig("fig.png", dpi=300, bbox_inches='tight')
plt.close()

拓展 - 修改已有legend

py 复制代码
leg = ax.get_legend()

leg.set_frame_on(False)
for text in leg.get_texts():
    text.set_fontsize(17)

拓展 - 排版

名字 作用阶段 作用对象
constrained_layout=True 🟢 创建时 整个布局系统
tight_layout() 🟡 绘图后 子图之间间距
bbox_inches='tight' 🔵 保存时 图片裁剪

constrained_layout=True: 新方案(智能布局引擎)

  • 避免标题重叠, 避免 label 重叠, 避免 legend 挤压

tight_layout(): 老方案

  • 调整子图间距, 避免基本重叠
  • 对 legend / colorbar 支持差, 有时会"挤坏布局"

bbox_inches='tight':

  • 去掉外围空白
  • 裁剪成"刚好包住内容"

-> 推荐使用 constrained_layout=Truebbox_inches='tight'

相关推荐
鱼日先生11 小时前
Dify 高级实验(09):测试用例生成——如何让 AI 自动产出测试用例?
人工智能·测试用例·工作流·dify·ai agent·大模型应用·ai 训练
回归27211 小时前
LM Studio切换国内HF-Mirror镜像进行模型下载
人工智能
m4Rk_11 小时前
【论文阅读】Agent 记忆机制(38):AMA——用多智能体协作动态选择记忆粒度
论文阅读·人工智能·学习
青春不败 177-3266-052011 小时前
基于R、Python的Copula变量相关性分析及AI大模型应用
人工智能·python·r语言·贝叶斯·统计学·copula
wx_xkq128811 小时前
2026企业级AI Agent落地观察:从工具集到组织级智能体
大数据·人工智能·saas·ai营销
AI_AGENT_DEV_AI11 小时前
AI 英语口语 APP的开发
人工智能
熊猫_豆豆11 小时前
WOKWI 仿真 ESP32S3 SSD1306 播放GIF图
人工智能·esp32s3·硬件开发·ssd1306
玫瑰互动GEO11 小时前
2026豆包AI搜索GEO优化:从豆包大模型到字节生态信源引用
大数据·人工智能·豆包·geo优化
dozenyaoyida11 小时前
AI与大模型新闻日报 | 2026-08-13
人工智能·ai·大模型·新闻
梦想的旅途211 小时前
企微 API 二次开发:结合 AI 提取聊天记录并智能生成会议纪要
人工智能