【Seaborn 学习笔记】P1.关系图:散点图 scatterplot、折线图 lineplot
matplotlib 画图seaborn 画变量关系seaborn本质上是在 matplotlib 的画布上画图安装 Seaborn使用 pip 安装pip install seaborn在 Python 中导入 Seaborn 库导入并取别名为 snsimport seaborn as sns加载 Seaborn 内置数据集Seaborn 拥有内置数据集可以直接加载返回 DataFrame 类型的数据集1. 查看内置数据集import seaborn as sns dataset_names sns.get_dataset_names() print(dataset_names)返回如下结果[anagrams, anscombe, attention, brain_networks, car_crashes, diamonds, dots, dowjones, exercise, flights, fmri, geyser, glue, healthexp, iris, mpg, penguins, planets, seaice, taxis, tips, titanic]2. 加载数据集返回的是 pandas 的 DataFrame 数据类型import seaborn as sns # 例如加载 iris 数据集 df sns.load_dataset(iris) # 返回 DataFrame 数据类型 # 查看前五条记录 print(df.head())结果如下sepal_length sepal_width petal_length petal_width species0 5.1 3.5 1.4 0.2 setosa1 4.9 3.0 1.4 0.2 setosa2 4.7 3.2 1.3 0.2 setosa3 4.6 3.1 1.5 0.2 setosa4 5.0 3.6 1.4 0.2 setosa散点图绘制 sns.scatterplot每条记录对应一个点seaborn 的 sns.scatterplot 相比 matplotlib 的 plt.scatter 多了三个关键统计语义hue分组指定一个特征给 hue对于不同的该特征绘制的点映射不同颜色style点的样式指定一个特征给 style对于不同的该特征绘制的点会使用不同的样式。用于区分第二分类维度size点的大小指定一个特征给 size若一条记录的该特征越大绘制的点也就越大示例绘制 penguins 数据集中企鹅的鳍长flipper_length_mm关于体重body_mass_g的散点图。首先加载数据集import seaborn as sns # 加载数据集 df sns.load_dataset(penguins) df.head()peguins 数据集形如1. 绘制一个普通的散点图# 绘制散点图 sns.scatterplot(datadf, xflipper_length_mm, ybody_mass_g) # seaborn 会自动忽略含有 NaN 的行不会报错 plt.show() # 使用 mpl 来显示图片 - sns 在 mpl 的画布上画图由 mpl 来显示图片绘图结果如下2. 加入参数 hue对指定特征不同的记录在画图时映射不同的颜色# 加入分类变量 hue sns.scatterplot( datadf, xflipper_length_mm, ybody_mass_g, huespecies # 将对每个点根据其 species 标注不同颜色 ) # 根据 hue 映射颜色 # seaborn 会自动生成 legend plt.show()绘图结果如下3. 加入参数 style对指定特征不同的记录在画图时使用不同的点的样式# 再加入点的样式 style sns.scatterplot( datadf, xflipper_length_mm, ybody_mass_g, huespecies, # 将对每个点根据其 species 标注不同颜色 stylesex # 将对每个点根据其 sex 选择不同的点的样式 ) # 根据 style 选择不同标记 # 适合在 hue 的基础上进行二次分类的情形 plt.show()绘图结果如下使用 Axes 对象精细化控制Seaborn 的大部分绘图函数都会返回一个 matplotlib.axes.Axes 对象因此不需要显示创建画布就可以拿到绘图后的 Axes并通过这个 Axes 对绘制的图形进行精细化控制。Axes 对象有关方法方法功能ax.set_title(标题)标题ax.set_xlabel(x轴标签)ax.set_ylabel(y轴标签)坐标轴标签ax.set_xlim(left?, right?)ax.set_ylim(bottom?, top?)坐标轴范围ax.set_xticks(x值的序列)ax.set_yticks(y值的序列)刻度ax.legend(title图例标题, locupper right)loc 表示图例的位置还可为 1. 最佳位置best自动选最不挡数据的位置2. 四个角与四条边中间upper, lower, center 与 left, right, center 的组合中间用空格隔开例如 upper center 表示上方居中3. 坐标系正中间center容易挡住数据图例ax.grid(True) # x、y轴网格线ax.grid(True, axis‘x) # 仅 x 轴网格线ax.grid(True, axisy) # 仅 y 轴网格线网格ax.axhline()ax.axvline()参考线ax.text()ax.annotate()文本ax.spines[] # 用字典形式对某边框进行操作包括边框显示与隐藏、粗细、颜色等# 隐藏上、右边框for spine in [top, right]:ax.spines[spine].set_visible(False)边框1. 示例import seaborn as sns import matplotlib as mpl import matplotlib.pyplot as plt df sns.load_dataset(penguins) df.head() mpl.rcParams[font.family] SimHei mpl.rcParams[font.size] 15 # 这里将返回的 Axes 对象存变量 ax ax sns.scatterplot( datadf, xflipper_length_mm, ybody_mass_g, huespecies ) # 添加 x、y 轴标签 ax.set_xlabel(鳍长 (mm)) ax.set_ylabel(体重 (g)) ax.legend(title物种) # 修改图例标题 ax.grid(True) # 网格线 plt.show()绘图结果如下2. 图例外置若图例在图中会遮挡数据可以使用 ax.legend() 方法将其放在图的外面要配合 plt.tight_layout() 使用否则图例可能会跑出画布ax.legend( title图例标题, bbox_to_anchor(x坐标, y坐标), # 对齐坐标(0, 0) 表示 ax 的左下角(1, 1) 表示 ax 的右上角 loc对齐方式 # 指定图例的哪个角或边中点与该坐标对齐 )例如将图例放在图的右侧常用写法ax.legend( title图例标题, bbox_to_anchor(1.02, 1), # 对齐坐标(1.02, 1)表示图的右上角往右0.02距离的点 locupper left # 指定图例的左上角与 (1.02, 1) 点对齐 )结果形如散点图练习1. 使用 penguins 数据集x 轴为喙长bill_length_mmy 轴为喙深bill_depth_mm并且按 species 映射颜色画出散点图加上合适的标题和轴标签画在子图12. 在 1 的基础上用 sex 区分性别画在子图2图例均放在图的右侧# 本人思路仅供参考 import seaborn as sns import matplotlib as mpl import matplotlib.pyplot as plt df sns.load_dataset(penguins) df.head() mpl.rcParams[font.family] SimHei mpl.rcParams[font.size] 15 # 使用 2×1 的垂直布局便于对比“仅按种类着色”与“按种类性别区分”的差异 fig, (ax1, ax2) plt.subplots(2, 1, figsize(12, 14), dpi100) # 同时获得画布 fig 与两幅子图 ax1, ax2 # 子图1 sns.scatterplot( datadf, xbill_length_mm, ybill_depth_mm, huespecies, axax1 ) ax1.set_title(喙长-喙深 对比图) ax1.set_xlabel(喙长 (mm)) ax1.set_ylabel(喙深 (mm)) # 将图例放到图的右侧 ax1.legend( title分组, locupper left, # 图例的左上角 bbox_to_anchor(1.02, 1) # 对齐到 ax1 的右侧 ) # 子图2 sns.scatterplot( datadf, xbill_length_mm, ybill_depth_mm, huespecies, stylesex, axax2 ) ax2.set_title(喙长-喙深 对比图) ax2.set_xlabel(喙长 (mm)) ax2.set_ylabel(喙深 (mm)) # 将图例放到图的右侧 ax2.legend( title物种 / 性别, locupper left, # 图例的左上角 bbox_to_anchor(1.02, 1) # 对齐到 ax2 的右侧 ) plt.tight_layout() plt.show()绘图结果如下折线图绘制 sns.lineplot

相关新闻

Retriever And Chain With LangChain 完整解读

Retriever And Chain With LangChain 完整解读

Retriever And Chain With LangChain 完整解读Retriever(检索器)和 Chain(链)是 LangChain 中 RAG(Retrieval-Augmented Generation,检索增强生成)最核心的两个组件。很多初学者容易把它们混淆&…

2026/7/24 6:53:14 阅读更多 →
Retriever  Chain in LangChain 完整深度解读

Retriever Chain in LangChain 完整深度解读

Retriever & Chain in LangChain 完整深度解读适配 LangChain 0.1 新版 API(区分 legacy RetrievalQA 与现代 LCEL 写法) 核心定位:RAG 的两大基础组件 ——Retriever(检索器)负责找文档,Chain&#xf…

2026/7/24 6:53:14 阅读更多 →
Claude三大模型代码能力评测与选型指南

Claude三大模型代码能力评测与选型指南

1. 项目背景与核心问题最近在开发者社区看到不少关于Claude不同模型版本的讨论,尤其是针对代码生成能力的对比。作为一个长期使用AI辅助编程的工具人,我决定对Claude的三个主要模型——Opus、Sonnet和Haiku进行一次系统的横向评测。这次测试主要聚焦两个…

2026/7/24 6:52:14 阅读更多 →

最新新闻

C/C++时间处理全解析:从time.h到chrono库的实战指南

C/C++时间处理全解析:从time.h到chrono库的实战指南

1. 项目概述:为什么C/C时间处理是程序员的必修课?在C和C的世界里,时间处理从来都不是一个简单的“获取当前时间”的函数调用。它更像是一套精密而古老的钟表系统,背后涉及操作系统内核、硬件时钟、时区转换、性能测量等多个层面。…

2026/7/24 6:58:16 阅读更多 →
AI临终忏悔师:算法伦理与生命周期的技术实践

AI临终忏悔师:算法伦理与生命周期的技术实践

1. 项目背景与核心概念"AI临终忏悔师"这个项目名称本身就充满了戏剧张力与技术伦理的碰撞。作为一名长期从事算法开发的工程师,我第一次听到这个概念时,脑海中立即浮现出几个关键问题:算法为什么需要"忏悔"?什…

2026/7/24 6:58:16 阅读更多 →
MSPM33硬件CRC加速器原理与应用:从算法基础到嵌入式实战

MSPM33硬件CRC加速器原理与应用:从算法基础到嵌入式实战

1. 项目概述:为什么我们需要硬件CRC加速器?在嵌入式开发里,数据完整性校验是个绕不开的话题。无论是通过UART、SPI、I2C接收一串传感器数据,还是从Flash里读取一段关键配置,甚至是无线模块发来的一帧LoRaWAN报文&#…

2026/7/24 6:58:16 阅读更多 →
AI Agent因果推理技术解析与实战应用

AI Agent因果推理技术解析与实战应用

1. AI Agent因果推理的核心价值在智能体技术快速发展的今天,AI Agent的决策能力正面临新的突破点。传统基于统计相关性的决策模式已经无法满足复杂场景需求,而因果推理的引入正在改变这一局面。我最近在多个实际项目中验证了因果推理对AI Agent决策质量的…

2026/7/24 6:58:16 阅读更多 →
大模型技术选型与工程实践:从API集成到生产环境部署

大模型技术选型与工程实践:从API集成到生产环境部署

在 AI 大模型领域,技术迭代和市场竞争的激烈程度远超外界想象。智谱股价的剧烈波动,表面看是市场对单一事件的短期反应,但背后折射出的却是整个行业对技术路线、商业化能力和生态壁垒的深层焦虑。Kimi K3 被推上风口浪尖,恰恰说明…

2026/7/24 6:58:16 阅读更多 →
昇腾ATC工具:AI模型转换与NPU部署优化指南

昇腾ATC工具:AI模型转换与NPU部署优化指南

1. ATC工具的核心定位与价值解析在AI模型从训练到部署的全流程中,模型转换环节往往成为制约落地的关键瓶颈。作为昇腾AI处理器生态的核心组件,ATC(Ascend Tensor Compiler)工具承担着将主流框架模型转换为适配NPU硬件指令集的重要…

2026/7/24 6:57:16 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻