当前位置: 首页 > news >正文

Python核心可视化库:Matplotlib与Seaborn深度解析

文章目录

  • 前言
  • 一、Matplotlib:科学可视化的基石
    • 1.1 核心架构层级
      • 后端层(Backend Layer)
      • 艺术家层(Artist Layer)
      • 脚本层(Scripting Layer)
    • 1.2 核心模块详解
      • matplotlib.figure 模块
      • matplotlib.axes 模块
      • matplotlib.axis 模块
      • matplotlib.patches 模块
      • matplotlib.text 模块
    • 1.3 高级模块
      • mpl_toolkits 三维可视化
      • matplotlib.gridspec 精密布局
    • 1.4 核心工作流程
  • 二、Seaborn:统计图形的高级抽象
    • 2.1 核心设计理念
    • 2.2 核心功能模块
    • 2.3 高级特性详解
    • 2.4 与Matplotlib的集成
    • 2.5 最佳实践
  • 三、深度集成:Matplotlib与Seaborn协同
  • 总结
  • 学习资源


前言

在数据科学领域,可视化是将抽象数据转化为直观洞见的关键桥梁。Python生态中的Matplotlib和Seaborn作为核心可视化库,构成了数据表达的基础设施。本文将深入剖析这两个库的设计哲学、核心功能及高级技巧。


一、Matplotlib:科学可视化的基石

Matplotlib 是 Python 科学计算领域的可视化基石,其模块化架构提供了灵活而强大的绘图能力。以下是核心模块的详细解析:

1.1 核心架构层级

整体架构图如下:
架构

后端层(Backend Layer)

核心特性:

  • 渲染图表‌:后端层负责将Matplotlib的绘图指令(如线条、文本、标记等)渲染为具体的图形输出,这可以是屏幕上的窗口、文件(如PNG、PDF等)或交互式环境(如Jupyter notebook)
  • 设备无关性‌:Matplotlib设计了一个抽象的后端层,使得相同的绘图指令可以在不同的输出设备上产生一致的图形效果。这意味着开发者无需关心具体的输出设备或文件格式,只需专注于绘图逻辑。
import matplotlib
matplotlib.use('Agg')  # 选择非交互式后端
matplotlib.use('TkAgg')  # 选择Tkinter交互式后端
  • 常用后端(在大多数情况下,Matplotlib会根据运行环境和可用资源自动选择最合适的后端):
    • AGG:Anti-Grain Geometry,生成高质量光栅图(PNG)。
    • PDF/SVG:矢量图输出。
    • QtAgg/TkAgg:GUI交互式后端。
  • 作用:隔离绘图逻辑与渲染实现

艺术家层(Artist Layer)

Matplotlib 的艺术家层是其核心组件之一,负责图形的绘制和表现。在 Matplotlib 的架构中,艺术家层位于较低层次的绘图系统(如图形渲染引擎)和较高层次的绘图接口(如 pyplot)之间。艺术家层提供了丰富的图形元素,如轴(Axes)、图例(Legend)、标题(Title)、标签(Label)以及图形本身(Figure)等。

from matplotlib.artist import Artist
from matplotlib.lines import Line2D
from matplotlib.patches import Rectanglefig, ax = plt.subplots()
line = Line2D([0, 1], [0, 1], color='blue')  # 创建线对象
rect = Rectangle((0.2, 0.2), 0.5, 0.3, alpha=0.5)  # 创建矩形对象ax.add_artist(line)  # 手动添加艺术家
ax.add_patch(rect)   # 添加图形补丁

核心类

  • FigureCanvas:绘图画布
  • Renderer:渲染器
  • Artist:所有可见元素的基类
    • Figure:顶级容器
    • Axes:坐标轴和绘图区域
    • Axis:坐标轴刻度系统
    • Line2D, Text, Patch:基本图形元素

脚本层(Scripting Layer)

脚本层是Matplotlib中最顶层的接口,它允许用户通过编写Python脚本来创建和管理图形、坐标轴、图例等元素。脚本层提供了丰富的API,使得用户可以灵活地定制图形的各个方面,从简单的线图到复杂的3D图形。

import matplotlib.pyplot as plt# MATLAB风格接口
plt.plot([1, 2, 3], [4, 5, 1])
plt.title('Basic Plot')
plt.show()# 面向对象接口
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 1])
ax.set_title('OO Style')

pyplot 模块

  • 提供MATLAB风格的全局状态接口
  • 自动管理当前Figure和Axes
  • 简化常见绘图任务

分层抽象设计:
分层抽象设计

1.2 核心模块详解

matplotlib.figure 模块

from matplotlib.figure import Figurefig = Figure(figsize=(8, 6), dpi=100)  # 独立创建Figure对象
canvas = FigureCanvas(fig)  # 关联画布
ax = fig.add_subplot(111)  # 添加坐标轴
ax.plot(np.random.rand(10))
  • 核心类:Figure
  • 功能:
    • 顶级容器对象(相当于画布)
    • 管理所有子图(Axes)
    • 控制全局属性(尺寸、DPI、背景色等)
  • 关键方法:
    • add_axes():手动添加坐标轴
    • add_subplot():添加子图
    • savefig():保存图形

matplotlib.axes 模块

from matplotlib.axes import Axes# 创建极坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')
ax.plot(np.linspace(0, 2*np.pi, 100), np.random.rand(100))# 创建双Y轴
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()  # 共享X轴
  • 核心类:Axes
  • 功能:
    • 数据绘图区域(包含坐标轴、刻度、标签)
    • 提供所有绘图方法(plot, scatter, bar等)
    • 支持多种坐标系(笛卡尔、极坐标、3D)
  • 坐标系类型:
    • rectilinear:标准笛卡尔坐标(默认)
    • polar:极坐标
    • 3d:三维坐标系

matplotlib.axis 模块

import matplotlib.ticker as tickerax = plt.subplot()
ax.xaxis.set_major_locator(ticker.MultipleLocator(0.5))  # 主刻度间隔
ax.yaxis.set_minor_locator(ticker.AutoMinorLocator(2))  # 次刻度数量# 自定义刻度格式化
def rad_to_deg(x, pos):return f"{np.degrees(x):.0f}°"
ax.xaxis.set_major_formatter(ticker.FuncFormatter(rad_to_deg))
  • 核心类:XAxis, YAxis
  • 功能:
    • 管理坐标轴刻度位置和标签
    • 控制刻度定位器(Locator)和格式化器(Formatter)
  • 关键组件:
    • Locator:确定刻度位置
    • Formatter:格式化刻度标签

matplotlib.patches 模块

from matplotlib.patches import Ellipse, Wedge, Arrowfig, ax = plt.subplots()
ax.add_patch(Ellipse((0.5, 0.5), 0.4, 0.2, angle=30, color='blue'))
ax.add_patch(Wedge((0.3, 0.7), 0.1, 30, 270, fc='green'))
ax.add_patch(Arrow(0.2, 0.2, 0.4, 0.6, width=0.05, color='red'))
  • 核心类:Patch
  • 功能:
    • 创建基本几何图形(矩形、圆形、多边形等)
    • 支持复杂形状组合
    • 提供高级几何变换
  • 常用子类:
    • Rectangle:矩形
    • Circle:圆形
    • Polygon:多边形
    • PathPatch:自定义路径

matplotlib.text 模块

from matplotlib.text import Text, Annotationfig, ax = plt.subplots()
ax.text(0.5, 0.5, 'Centered Text', ha='center', va='center', fontsize=14, bbox={'facecolor':'yellow', 'alpha':0.5})# 带箭头的注释
ax.annotate('Important Point', xy=(0.7, 0.3), xytext=(0.3, 0.8),arrowprops={'arrowstyle':'->', 'color':'red'},fontsize=12)
  • 核心类:Text, Annotation
  • 功能:
    • 添加文本标签和注释
    • 支持LaTeX数学公式
    • 文本布局和样式控制
  • 高级特性:
    • 文本路径效果
    • 文本边界框控制
    • 多行文本布局

1.3 高级模块

mpl_toolkits 三维可视化

from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()
ax = fig.add_subplot(111, projection='3d')# 创建三维数据
X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)# 绘制三维曲面
ax.plot_surface(X, Y, Z, cmap='viridis', edgecolor='none')
ax.set_zlabel('Z Axis')
  • 功能:提供3D绘图能力
  • 核心类:Axes3D
  • 支持图表:
    • 3D散点图(scatter)
    • 3D曲面图(plot_surface)
    • 3D线框图(plot_wireframe)
    • 3D柱状图(bar3d)

matplotlib.gridspec 精密布局

from matplotlib.gridspec import GridSpec, GridSpecFromSubplotSpecfig = plt.figure(constrained_layout=True)
gs = GridSpec(3, 3, figure=fig)  # 3x3网格# 跨行跨列布局
ax1 = fig.add_subplot(gs[0, :])         # 第一行整行
ax2 = fig.add_subplot(gs[1:, 0])        # 第二行起第一列
ax3 = fig.add_subplot(gs[1, 1:])        # 第二行第二列之后
ax4 = fig.add_subplot(gs[2, 1])         # 第三行第二列# 嵌套网格
inner_gs = GridSpecFromSubplotSpec(2, 1, subplot_spec=gs[2, 2])
ax5 = fig.add_subplot(inner_gs[0])
ax6 = fig.add_subplot(inner_gs[1])
  • 功能:实现复杂子图布局
  • 核心类:
    • GridSpec:定义网格布局
    • SubplotSpec:子图位置规范
  • 优势:
    • 精确控制子图位置和大小
    • 支持嵌套网格
    • 动态调整间距

1.4 核心工作流程

工作流程

  1. 创建画布:fig = plt.figure()
  2. 添加坐标轴:ax = fig.add_subplot()
  3. 绘图操作:
    • 数据绘图:ax.plot(), ax.scatter()
    • 添加元素:ax.text(), ax.annotate()
    • 添加图形:ax.add_patch()
  4. 样式配置:
    • 坐标轴:ax.set_xlim(), ax.set_xticks()
    • 标签:ax.set_xlabel(), ax.set_title()
    • 图例:ax.legend()
  5. 输出展示:
    • 交互显示:plt.show()
    • 文件保存:fig.savefig()

模块关系图:

matplotlib
├── pyplot (脚本接口)
├── figure (图形容器)
├── axes (绘图区域)
│   ├── axis (坐标轴系统)
│   │   ├── XAxis
│   │   └── YAxis
│   ├── patches (几何图形)
│   └── text (文本标注)
├── artist (所有可见元素基类)
├── colors (颜色系统)
├── transforms (坐标变换)
└── backends (后端系统)├── backend_agg (AGG渲染)├── backend_pdf (PDF输出)└── backend_tk (TK交互)

Matplotlib 的模块化设计使其成为科学可视化的瑞士军刀。通过深入理解其架构和核心模块,开发者可以创建从简单图表到复杂出版级图形的各种可视化作品,满足科学计算、数据分析、工程绘图等领域的多样化需求。

二、Seaborn:统计图形的高级抽象

Seaborn 是建立在 Matplotlib 之上的高级数据可视化库,专注于统计图形的创建和探索性数据分析。它提供了更简洁的 API、更美观的默认样式和更强大的统计功能,使数据科学家能够快速生成有洞察力的可视化结果。

2.1 核心设计理念

Matplotlib 的核心设计理念是提供 高度可定制化底层控制能力强绘图工具,以面向对象的方式(如 FigureAxes 对象)支持用户精确控制图表中的每一个元素,适合复杂或科研级可视化。

Seaborn 的核心设计理念是 简化统计图表的创建,通过高级封装(基于 Matplotlib)和默认美观的样式,用极简语法(如 sns.boxplot())快速生成常见统计图形(如分布、回归、分类图),强调数据与视觉表达的直观关联。

两者互补:Matplotlib 是“画笔”,Seaborn 是“模板”。

  1. 数据集为中心的 API
import seaborn as sns# 加载内置数据集
tips = sns.load_dataset("tips")# 直接使用DataFrame列名绘图
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="time")
  1. 统计关系可视化
    自动计算统计量(均值、置信区间等)并可视化:
sns.barplot(data=tips, x="day", y="total_bill", ci=95)  # 显示95%置信区间
  1. 多变量关系表达
    通过 hue、size、style 等参数编码多个变量:
sns.relplot(data=tips,x="total_bill", y="tip",hue="smoker",      # 颜色区分吸烟者size="size",       # 点大小表示人数style="time",      # 点样式表示用餐时间col="sex"          # 分面:按性别分开子图
)
  1. 自动化美学系统
# 设置全局主题
sns.set_theme(context="notebook",  # 上下文大小style="whitegrid",   # 样式主题palette="deep",      # 调色板font="DejaVu Sans",  # 字体rc={"axes.grid": True}  # 额外配置
)

2.2 核心功能模块

  1. 关系可视化 (Relational Plots)
# 散点图矩阵
sns.pairplot(data=iris, hue="species",diag_kind="kde",  # 对角线使用核密度估计markers=["o", "s", "D"],plot_kws={"alpha": 0.7}
)# 线性回归图
sns.lmplot(data=tips, x="total_bill", y="tip",hue="smoker",col="time",robust=True,  # 抗异常值回归ci=90         # 90%置信区间
)
  1. 分类可视化 (Categorical Plots)
# 箱线图与小提琴图组合
fig, ax = plt.subplots(figsize=(10, 6))
sns.boxplot(data=tips, x="day", y="total_bill", hue="sex",palette="pastel",width=0.6,ax=ax
)
sns.stripplot(data=tips, x="day", y="total_bill", hue="sex",palette="dark",dodge=True,size=4,alpha=0.7,ax=ax
)# 多层面板分类图
sns.catplot(data=titanic,x="class",y="age",hue="sex",col="survived",  # 按生存状态分面kind="violin",split=True,inner="quartile",palette="coolwarm"
)
  1. 分布可视化 (Distribution Plots)
# 联合分布图
g = sns.jointplot(data=tips, x="total_bill", y="tip",kind="hex",  # 六边形分箱marginal_kws=dict(bins=20, kde=True),height=7
)# 添加回归线和相关系数
g.plot_joint(sns.regplot, scatter=False)
g.annotate(stats.pearsonr, template='r = {val:.2f}\np = {p:.3f}')# 多变量分布比较
sns.displot(data=tips,x="total_bill",hue="time",kind="kde",multiple="stack",  # 堆叠显示fill=True,palette="crest"
)
  1. 回归分析 (Regression Plots)
# 多项式回归
sns.regplot(data=tips,x="total_bill",y="tip",order=2,  # 二次多项式ci=None,scatter_kws={"s": 50, "alpha": 0.7}
)# 逻辑回归可视化
sns.lmplot(data=titanic,x="age",y="survived",  # 二元变量logistic=True,  # 逻辑回归y_jitter=0.05,  # 添加抖动避免重叠hue="sex",palette="Set2"
)
  1. 矩阵图 (Matrix Plots)
# 聚类热力图
flights = sns.load_dataset("flights").pivot("month", "year", "passengers")
sns.clustermap(flights,cmap="coolwarm",standard_scale=1,  # 按行标准化figsize=(10, 8),dendrogram_ratio=0.1,cbar_pos=(0.02, 0.8, 0.03, 0.18)
)# 相关矩阵
corr = tips.corr()
sns.heatmap(corr,annot=True,  # 显示数值fmt=".2f",   # 两位小数cmap="vlag", center=0,square=True,linewidths=0.5
)

2.3 高级特性详解

Seaborn的高级特性围绕高效统计绘图展开:

  • 主题与样式系统:通过 set_theme() 和 set_style() 全局控制图表风格(如 darkgrid/whitegrid),结合 axes_style() 临时微调,实现出版级美学统一;
  • 颜色管理系统:内置 color_palette() 和分类/连续调色板(如 viridis、husl),支持自定义色彩映射,自动适配数据语义(如离散/连续变量);
  • 分面网格系统:通过 row/col 参数拆分数据子集,一键生成多面板对比图,支持 map() 方法灵活扩展自定义绘图函数;
  • Matplotlib深度集成:直接兼容Matplotlib的 Figure 和 Axes 对象,支持混合调用(如 sns.lineplot + plt.title),并可通过 get_figure() 获取底层对象进行精细调整。

这些特性使Seaborn在保持统计自动化优势的同时,兼具定制化能力,形成“高层抽象+底层可控”的协作生态。

  1. 主题与样式系统
# 可用主题
themes = ["darkgrid", "whitegrid", "dark", "white", "ticks"]# 创建自定义主题
custom_style = {"axes.facecolor": "#F5F7FA",  # 背景色"grid.color": "#D0D8E0",      # 网格线颜色"axes.edgecolor": "#2c3e50",  # 坐标轴颜色"text.color": "#34495e",      # 文本颜色"font.family": "Roboto"       # 字体
}
sns.set_style(custom_style)# 上下文缩放(不同输出场景)
contexts = ["paper", "notebook", "talk", "poster"]
sns.set_context("talk")  # 适合演示
  1. 颜色管理系统
# 创建调色板
palette = sns.color_palette("ch:s=.25,rot=-.25", as_cmap=True)# 分类调色板
categorical_pal = sns.color_palette("Set2", 8)# 连续调色板
sequential_pal = sns.color_palette("rocket", as_cmap=True)# 发散调色板
diverging_pal = sns.diverging_palette(250, 30, l=65, center="dark", as_cmap=True)# 使用调色板
sns.scatterplot(data=tips,x="total_bill",y="tip",hue="size",  # 连续变量palette=sequential_pal,size="size"
)
  1. 分面网格系统 (FacetGrid)
g = sns.FacetGrid(tips, row="sex", col="time", margin_titles=True,height=4,aspect=1.2,palette="viridis"
)# 对每个子图应用绘图函数
g.map_dataframe(sns.scatterplot, x="total_bill", y="tip",hue="day",s=80,alpha=0.8
)# 自定义每个子图
g.set_axis_labels("Total Bill ($)", "Tip ($)")
g.set_titles(col_template="{col_name} Service", row_template="{row_name}")
g.add_legend(title="Day of Week")
g.fig.suptitle("Tipping Patterns Analysis", y=1.05, fontsize=16)

2.4 与Matplotlib的集成

  1. 底层Axes访问
g = sns.histplot(data=tips, x="total_bill", kde=True)
ax = g.axes  # 获取Matplotlib Axes对象# 添加Matplotlib元素
ax.axvline(tips["total_bill"].mean(), color='r', linestyle='--', label='Mean')
ax.annotate('Outlier', xy=(50, 5), xytext=(45, 15),arrowprops=dict(facecolor='black', shrink=0.05))
ax.set_title("Customized Histogram", fontsize=14)
  1. 混合绘图
fig, ax = plt.subplots(figsize=(10, 6))# Seaborn绘图
sns.violinplot(data=tips, x="day", y="total_bill", inner=None,palette="pastel",ax=ax
)# Matplotlib绘图
sns.stripplot(data=tips, x="day", y="total_bill", color="black",size=3,jitter=0.2,ax=ax
)# Matplotlib自定义
ax.set_ylabel("Total Bill (USD)", fontsize=12)
ax.grid(axis='y', linestyle=':', alpha=0.7)

2.5 最佳实践

  1. 探索性数据分析工作流
# 1. 数据集概览
sns.pairplot(data, diag_kind="kde")# 2. 变量关系分析
sns.relplot(data, x="feature1", y="target", hue="category")# 3. 分类变量比较
sns.catplot(data, x="category", y="value", kind="boxen")# 4. 分布分析
sns.displot(data, x="value", hue="category", kind="ecdf")# 5. 相关性分析
sns.heatmap(data.corr(), annot=True)# 6. 高级模型可视化
sns.lmplot(data, x="feature", y="target", lowess=True)
  1. 自定义主题模板
def professional_theme():"""创建专业报告主题"""return {"axes.facecolor": "#FFFFFF","figure.facecolor": "#FFFFFF","grid.color": "#EAEAEA","axes.edgecolor": "#333333","text.color": "#333333","xtick.color": "#333333","ytick.color": "#333333","font.family": "Arial","font.size": 11,"axes.titlesize": 14,"axes.labelsize": 12}sns.set_theme(style=professional_theme(), palette="muted")
  1. 交互式可视化
import matplotlib.pyplot as plt
from mplcursors import cursorfig, ax = plt.subplots()
plot = sns.scatterplot(data=tips, x="total_bill", y="tip", hue="size",size="size",sizes=(20, 200),ax=ax
)# 添加交互式提示
def show_hover(sel):index = sel.target.indexrow = tips.iloc[index]sel.annotation.set_text(f"Day: {row['day']}\n"f"Time: {row['time']}\n"f"Smoker: {row['smoker']}")cursor = cursor(ax, hover=True)
cursor.connect("add", show_hover)plt.tight_layout()
plt.show()

总结
Seaborn 的核心价值在于:

  • 高级抽象:封装复杂统计图形为简单函数调用
  • 自动化统计:内置统计计算和可视化(置信区间、回归线等)
  • 多变量支持:通过视觉属性编码多个数据维度
  • 美学优化:专业级默认样式和颜色系统
  • Pandas集成:无缝处理DataFrame数据结构

通过掌握Seaborn的核心模块和高级功能,数据科学家可以显著提高数据探索和可视化的效率,将更多精力集中在数据洞察而非图形编码上。

三、深度集成:Matplotlib与Seaborn协同

底层定制技巧:

# 在Seaborn基础上使用Matplotlib精细调整
g = sns.jointplot(data=iris, x='sepal_width', y='petal_width',kind='reg', marginal_kws={'bins':15, 'kde':True})# 访问底层Axes对象
g.ax_joint.set_xlabel('Sepal Width (cm)', fontweight='bold')
g.ax_joint.annotate('Outlier Cluster', xy=(4.0, 2.5),xytext=(3.2, 2.8),arrowprops={'arrowstyle': '->', 'color': 'red'})# 添加统计信息
from scipy import stats
r, p = stats.pearsonr(iris['sepal_width'], iris['petal_width'])
g.ax_joint.text(0.05, 0.9, f'$\\rho = {r:.2f}$', transform=g.ax_joint.transAxes)

高级复合图形:

# 创建多面板仪表板
fig = plt.figure(figsize=(16, 12), constrained_layout=True)
spec = fig.add_gridspec(3, 4)# 热力图
ax1 = fig.add_subplot(spec[0, :2])
sns.heatmap(iris.corr(), annot=True, cmap='icefire', ax=ax1)# 箱线图
ax2 = fig.add_subplot(spec[0, 2:])
sns.boxplot(data=iris, orient='h', palette='viridis', ax=ax2)# 分布图
ax3 = fig.add_subplot(spec[1:, :])
sns.histplot(data=iris, x='sepal_length', hue='species', element='step', stat='density', common_norm=False, ax=ax3)# 添加全局标题
fig.suptitle('Iris Dataset Comprehensive Analysis', fontsize=20, y=0.95)

总结

Matplotlib提供基础绘图能力,而Seaborn在其基础上构建了高级统计可视化抽象。两者结合形成完整的可视化技术栈:

  1. Matplotlib优势
    • 底层图形控制
    • 复杂布局构建
    • 自定义图形元素
    • 出版级图形输出
  2. Seaborn优势
    • 统计关系直观表达
    • 自动化美学系统
    • 多变量数据探索
    • 分类数据高效呈现

掌握这两个库的组合使用,能够应对从基础图表到复杂仪表板的各类可视化需求,将数据转化为具有说服力的视觉叙事。

学习资源

  • Matplotlib 官方文档
  • Seaborn 官方文档
  • Matplotlib 可视化教程(W3Schools)

相关文章:

  • 个人做商机网站如何盈利网络广告营销的典型案例
  • 商城建站服务百度推广多少钱
  • 南宁做网站价格百度百科官网入口
  • 东莞网络推广网站百度最容易收录的网站
  • 广东省建设厅网站怎么让百度收录自己的网站
  • 想自己做个网站在哪里做微信指数查询
  • request这个包中,get 这个方法里传入的是params ,post这个方法里传入的是data 和 json。这个区别是什么?
  • pscc系统如何部署,怎么更安全更便捷?
  • Linux 怎么恢复sshd.service
  • 结构体数组与Excel表格:数据库世界的理性与感性
  • 超级好用的小软件:geek,卸载软件,2m大小
  • Webpack 核心概念
  • 基于MATLAB的BP神经网络的心电图分类方法应用
  • Web后端基础:Java操作数据库----JDBC
  • 夏至之日,共赴实时 AI 之约:RTE Open Day@AGI Playground 2025 回顾
  • CAS 有什么问题?如何解决这些问题?
  • 《解锁Web游戏潜力:手柄操控的进阶法则》
  • 【nRF52832】【环境搭建 1】【ubuntu下搭建nRF52832开发环境】
  • 2 Studying《BPF.Performance.Tools》1-9
  • AnythingLLM+Ollama搭建本地知识库
  • 【Ansible】Ansible介绍
  • Java 的强制类型转换
  • 基于STM32的个人健康助手的设计
  • 参数两和显存占用计算
  • 高性能的内存数据存储系统-Redis
  • 微信小程序适配 iPhone 底部导航区域(safe area)的完整指南