我正在尝试绘制3x3sns.PairGrid
个绘图。当前,底部三角形和上部三角形分别共享轴。换句话说,x轴和y轴仅与各自的列/行共享。因此,绘图(1,0)
的x轴与(0,0)
和(2,0)
共享
但是,我希望所有非对角图共享它们的轴。例如,我希望(1,0)
像以前一样与(0,0)
和(2,0)
共享其x轴,但也与{
另外,如果y轴不与对角线上的图共享,我更喜欢这样,因为它们是一维核密度图,因此如果我共享它们的y轴,其中一些将不可见,因为概率密度函数的大小不同
以下是我当前的代码(如果有帮助):
我正在相互绘制的3个参数称为“A”、“C”和“logsw”,它们包含在名为pandas.DataFrame
的hyperparams
中
g = sns.PairGrid(hyperparams, diag_sharey=False)
g.map_lower(sns.kdeplot)
g.map_upper(plt.scatter, marker='+')
g.map_diag(sns.kdeplot)
下面是输出图的一个简单示例:
左下角的图像与右上角的图像比例不同,这正是我试图避免的
高级,您可以手动设置x和y限制和记号。您还可以将变量设置为您想要共享的内容,然后在3个类似子包中重用该变量
这样,如果需要进行调整,只需更新变量,共享该变量的3个绘图现在会同时更新
在过去,我创建了一个成对网格的代码,我在其中设置沿y轴的所有子地块上的限制和记号,并以这种方式设置沿x轴的所有地块
目前在Seaborn中没有自动执行此操作的方法。注释中建议的解决方法似乎解决了问题,即手动设置对角线子地块的轴限制。为x和y限制使用变量可确保在更新轴范围时只需在一个位置更改它们
相关问题 更多 >
编程相关推荐