【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/8/18 5:22:16 阅读更多 →
Retriever  Chain in LangChain 完整深度解读

Retriever Chain in LangChain 完整深度解读

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

2026/8/11 13:17:34 阅读更多 →
Claude三大模型代码能力评测与选型指南

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

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

2026/8/17 8:12:29 阅读更多 →

最新新闻

C# ModBus

C# ModBus

简单汇总一下不使用NModBus包的C#上位机侧的ModBus实现;1. ModBus Tcppublic class ModBusSerer {private int _index;private int _slaveIndex 1;private TcpClient _tcpClient;public NetworkStream _stream;public void Start(string ip, int port){_tcpClient new TcpCli…

2026/8/18 11:48:53 阅读更多 →
个人知识库搭建工具对比:有道云笔记和印象笔记,谁更适合构建长期知识体系?

个人知识库搭建工具对比:有道云笔记和印象笔记,谁更适合构建长期知识体系?

** 从"记笔记"到"建知识库",两款工具走出了不同的路 一、从"记笔记"到"建知识库",两款工具的不同路径 讨论个人知识库搭建这个话题时,有道云笔记和印象笔记这两款国内的老牌笔记软件经常被放在一起。…

2026/8/18 11:48:53 阅读更多 →
贝叶斯不确定性传播在Agentic RAG中的应用:构建可信的多跳问答系统

贝叶斯不确定性传播在Agentic RAG中的应用:构建可信的多跳问答系统

1. 项目概述:当RAG有了“自知之明”最近在折腾Agentic RAG(智能体化检索增强生成)项目时,我一直在琢磨一个问题:我们费尽心思构建的这条“检索-理解-生成”流水线,它对自己给出的答案到底有多自信&#xff…

2026/8/18 11:48:53 阅读更多 →
GitHub高星项目方法论:从my_ai_town看开源成功的核心要素

GitHub高星项目方法论:从my_ai_town看开源成功的核心要素

你有没有想过,一个看似“顺手”做出来的项目,是如何在 GitHub 上获得数万 Star,甚至跻身全球排名前列的?这背后,真的只是运气吗?我最近在 GitHub 上看到了一个名为 “my_ai_town” 的项目,它获得…

2026/8/18 11:48:53 阅读更多 →
uni-app nvue样式兼容性:从CSS报错到条件编译的完整解决方案

uni-app nvue样式兼容性:从CSS报错到条件编译的完整解决方案

1. 项目概述:从一次棘手的升级报错说起 最近在将一个老版本的 uni-app 项目升级到较新的 HBuilderX 和框架版本时,控制台突然开始疯狂刷出警告:“nvue中不支持如下css。如全局或公共样式受影响,建议将告警样式写在ifnd APP-PLUS-N…

2026/8/18 11:48:51 阅读更多 →
单片机毕业设计-基于 51/STM32 单片机带数码管显示的智能台灯硬件系统开发 具备手动自动双模式的单片机智能台灯设计(021403)

单片机毕业设计-基于 51/STM32 单片机带数码管显示的智能台灯硬件系统开发 具备手动自动双模式的单片机智能台灯设计(021403)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/18 11:47:51 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →