【Matplotlib】在 ax(Axes 对象)上使用 seaborn(简称 sns)绘图
创始人
2024-11-13 16:36:14

在这里插入图片描述
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 的分布情况。如果有其他问题或需要进一步帮助,请随时告诉我!

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...