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

【Matplotlib】在 ax(Axes 对象)上使用 seaborn(简称 sns)绘图

在这里插入图片描述
axAxes 对象)上使用 seaborn(简称 sns)绘图时,你可以通过将 ax 作为参数传递给 seaborn 的绘图函数。这允许你将 seaborn 的图形绘制在指定的 ax 对象上,从而将多个图形组合在一个图形布局中。

示例代码

假设你有一个 Axes 对象 ax,并且想要在这个 ax 上绘制一个 seaborn 的图形:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd# 生成一些随机数据
data = np.random.rand(100, 2)
df = pd.DataFrame(data, columns=['X', 'Y'])# 创建一个Matplotlib的Axes对象
fig, ax = plt.subplots()# 使用seaborn在指定的Axes对象上绘图
sns.scatterplot(data=df, x='X', y='Y', ax=ax)# 设置标题
ax.set_title('Scatter Plot using Seaborn on Axes')# 显示图形
plt.show()

解释:

  1. fig, ax = plt.subplots(): 创建一个 Figure 和一个 Axes 对象。
  2. sns.scatterplot(..., ax=ax): 在指定的 Axes 对象 ax 上绘制一个散点图。ax=ax 这个参数告诉 seaborn 将图形绘制在这个 ax 上,而不是创建一个新的图形。
  3. ax.set_title('...'): 设置 ax 的标题。

你可以使用这种方法在一个图形中绘制多个子图或者控制每个子图的布局和样式。这种方式结合了 Matplotlib 的灵活性和 Seaborn 的高层次 API,适用于复杂的图形布局需求。

在这里插入图片描述

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np# 生成一些随机数据
data1 = np.random.randn(1000)
data2 = np.random.randn(1000)# 创建一个包含两个子图的布局,分成一行两列
fig, axs = plt.subplots(1, 2, figsize=(12, 6))# 在第一个子图上绘制KDE图
sns.kdeplot(data1, ax=axs[0])
axs[0].set_title('KDE of Data 1')# 在第二个子图上绘制KDE图
sns.kdeplot(data2, ax=axs[1])
axs[1].set_title('KDE of Data 2')# 调整子图布局
plt.tight_layout()# 显示图形
plt.show()

解释:

  1. fig, axs = plt.subplots(1, 2, figsize=(12, 6)): 创建一个包含两个子图的布局,分成一行两列,并指定图形大小。
  2. sns.kdeplot(data1, ax=axs[0]): 在第一个子图 axs[0] 上绘制数据 data1 的 KDE 图。
  3. sns.kdeplot(data2, ax=axs[1]): 在第二个子图 axs[1] 上绘制数据 data2 的 KDE 图。
  4. plt.tight_layout(): 自动调整子图布局,以防止子图重叠。

你可以复制并在本地运行这段代码。这样会生成两个并排的 KDE 图,分别展示 data1data2 的分布情况。如果有其他问题或需要进一步帮助,请随时告诉我!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Meta最新SAM2模型开源直接封神
  • 计算机技术基础 (bat 批处理)Note5
  • CSS平面转换-旋转
  • NumPy 基础教程
  • 普通人有必要学Python吗?学了之后能做什么?
  • element-ui+vue2实现粘贴上传
  • 收银系统源码-分销商城视频介绍
  • 企业搭建SD-WAN组网有什么意义?
  • “光影魔术手”:一款让照片编辑更高效的软件工具
  • 自动化测试selenium
  • 最新小猫咪PHP加密系统源码V1.4_本地API接口_带后台
  • 【时时三省】(C语言基础)函数递归
  • 体验教程:通义灵码陪你备战求职季
  • 文件审查流程:使用指南
  • js录制音频
  • CSS实用技巧干货
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Invalidate和postInvalidate的区别
  • JavaScript函数式编程(一)
  • leetcode98. Validate Binary Search Tree
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Rancher如何对接Ceph-RBD块存储
  • Vue.js源码(2):初探List Rendering
  • XForms - 更强大的Form
  • 解析 Webpack中import、require、按需加载的执行过程
  • 你不可错过的前端面试题(一)
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 数据仓库的几种建模方法
  • 写代码的正确姿势
  • 阿里云服务器如何修改远程端口?
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • #《AI中文版》V3 第 1 章 概述
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (7)svelte 教程: Props(属性)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (三)终结任务
  • (一)u-boot-nand.bin的下载
  • ****Linux下Mysql的安装和配置
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .project文件
  • @AliasFor注解
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [20150904]exp slow.txt