gpt4 book ai didi

python - 在 Seaborn PairGrid 上 reshape 子图

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:56 25 4
gpt4 key购买 nike

我真的很喜欢 Seaborn 的 PairGrid 的功能.但是,我无法将子图 reshape 到令我满意的程度。例如,下面的代码将返回一个包含 1 列和 2 行的图形,反射(reflect) 1 个 x 变量和 2 个 y 变量。

import seaborn as sns
tips = sns.load_dataset('tips')
g = sns.PairGrid(tips,y_vars=['tip','total_bill'],x_vars=['size'], hue='sex')
g.map(sns.regplot,x_jitter=.125)

enter image description here

但是,我最好将此图重新定向为 2 列和 1 行。看起来这些子图位于 g.axes 中,但我如何将它们传递回 plt.subplots(1,2) 类型的函数?

最佳答案

PairGrid 选择这种对齐方式是因为两个图具有相同的 x 轴。因此,获得横向图的最简单方法是交换 x 和 y:

import seaborn as sns
tips = sns.load_dataset('tips')
g = sns.PairGrid(tips,x_vars=['tip','total_bill'],y_vars=['size'], hue='sex')
g.map(sns.regplot,y_jitter=.125)

(请注意,您还必须将 x_jitter 更改为 y_jitter 以获得相同的结果。)

如果您不想那样做,那么我认为 PairGrid 不是适合您的工具。您也可以只使用两个子图并使用 sns.regplot 创建图:

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')
male = tips[tips.sex=='Male']
female = tips[tips.sex=='Female']

with sns.color_palette(n_colors=2):
fig, axs = plt.subplots(1,2)
sns.regplot(x='size', y='tip', data=male, x_jitter=.125, ax=axs[0])
sns.regplot(x='size', y='tip', data=female, x_jitter=.125, ax=axs[0])
sns.regplot(x='size', y='total_bill', data=male, x_jitter=.125, ax=axs[1])
sns.regplot(x='size', y='total_bill', data=female, x_jitter=.125, ax=axs[1])

关于python - 在 Seaborn PairGrid 上 reshape 子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27513437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com