来自seaborn
的^{
函数接受的两个关键字参数是sharex
和sharey
,根据文档:
share{x,y} : bool, optional
If true, the facets will share y axes across columns and/or x axes across rows.
但我看不到任何其他方法来控制面/子块共享轴的方式。所以。。。
是否有任何方法可以跨列共享x轴和/或跨行共享y轴?
我试图获得不同条件下(列和色调)不同数量(行)的密度图。因此,我希望子块跨行共享x轴和y轴,但不跨列共享链接。
它没有正确的文档记录,但是这些参数直接传递给
plt.subplots
,这允许您将这些参数的值设置为"row"
或"col"
,以便轴只在行或列中共享,而不是在整个网格中共享。我不知道你到底想让你的情节看起来怎么样,但我想你可以这样做:
也就是说,一般来说,我会尝试在网格上共享轴(即,将绘图结构设置为在行上共享y轴,而不是在列上共享y轴),以简化视觉比较。
FacetGrid
对象包含一个轴集合(网格形状的numpy数组)。可以在阵列中的每个轴上手动设置轴限制。不过,这需要大量的迭代/后处理。下面是一个简单的例子。但是,如果您不介意跳过
seaborn
并直接在matplotlib
中工作,则可以使用GridSpec
对象而不是FacetGrid,如示例here所示。然后可以指定共享的轴。在本例中,我们跨行共享x轴(每个
i % 5 == 0
)。由于GridSpec对象只是一个轴的numpy数组,我们可以按照任何方便的顺序初始化它们,并根据需要共享轴。有了GridSpec
,您可以进行更多的定制,但是seaborn
(色调等)的许多漂亮部分都必须手动编码。相关问题 更多 >
编程相关推荐