Seaborn Pairgrid:如何为所有非对角绘图共享所有轴(即每个绘图与其镜像共享轴)?

2024-05-15 15:25:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试绘制3x3sns.PairGrid个绘图。当前,底部三角形和上部三角形分别共享轴。换句话说,x轴和y轴仅与各自的列/行共享。因此,绘图(1,0)的x轴与(0,0)(2,0)共享

但是,我希望所有非对角图共享它们的轴。例如,我希望(1,0)像以前一样与(0,0)(2,0)共享其x轴,但也与{}共享其x轴

另外,如果y轴不与对角线上的图共享,我更喜欢这样,因为它们是一维核密度图,因此如果我共享它们的y轴,其中一些将不可见,因为概率密度函数的大小不同

以下是我当前的代码(如果有帮助):

我正在相互绘制的3个参数称为“A”、“C”和“logsw”,它们包含在名为pandas.DataFramehyperparams

g = sns.PairGrid(hyperparams, diag_sharey=False)
g.map_lower(sns.kdeplot)
g.map_upper(plt.scatter, marker='+')
g.map_diag(sns.kdeplot)

下面是输出图的一个简单示例:

The images on the bottom left are scaled differently to the images on the upper right, which is what I'm trying to avoid.

左下角的图像与右上角的图像比例不同,这正是我试图避免的


Tags: 代码图像绘图map绘制diag密度概率密度函数
2条回答

高级,您可以手动设置x和y限制和记号。您还可以将变量设置为您想要共享的内容,然后在3个类似子包中重用该变量

这样,如果需要进行调整,只需更新变量,共享该变量的3个绘图现在会同时更新

在过去,我创建了一个成对网格的代码,我在其中设置沿y轴的所有子地块上的限制和记号,并以这种方式设置沿x轴的所有地块

目前在Seaborn中没有自动执行此操作的方法。注释中建议的解决方法似乎解决了问题,即手动设置对角线子地块的轴限制。为x和y限制使用变量可确保在更新轴范围时只需在一个位置更改它们

相关问题 更多 >