【问题标题】:Seaborn pairwise matrix of hexbin jointplots六边形联合图的 Seaborn 成对矩阵
【发布时间】:2015-07-13 13:56:39
【问题描述】:

我正在尝试生成一个比较分布的成对图矩阵 (something like this)。由于我有很多要点,我想使用 hexbin 图来减少时间和绘图复杂性。

import seaborn as sns
import matplotlib.pyplot as plt


tips = sns.load_dataset("tips")

g = sns.FacetGrid(tips, col="time", row="sex")
g.map(sns.jointplot, "total_bill", "tip", kind="hex")
plt.show()

尽管如此,它不是创建绘图矩阵,而是在各个窗口中独立创建多个绘图。

我也想过使用seaborn.pairplot 来生成这个,但我不能将"hex" 作为值传递给kind

【问题讨论】:

  • 是的,我使用 seaborn 0.7.1 也看到了这一点。我不确定为什么 FacetGrid 不适用于联合图。
  • 我遇到了同样的行为,不确定我是否做错了什么 - 它创建了图矩阵,空的,然后在矩阵之后按顺序绘制我的正常联合图。跨度>
  • 这是因为jointplot 是一个图形级别的函数并在其自己的图形中绘图,而不是在给定轴上绘图的函数。在下面的答案中,mwaskom 创建使用另一个图形级函数(FacetGrid)并将一个函数映射到其轴,该函数在先前创建的轴中绘图。

标签: python matplotlib plot seaborn


【解决方案1】:

查看tutorial on using custom functions 中的最后一个示例和FacetGrid,我将在此处重现:

def hexbin(x, y, color, **kwargs):
    cmap = sns.light_palette(color, as_cmap=True)
    plt.hexbin(x, y, gridsize=15, cmap=cmap, **kwargs)

g = sns.FacetGrid(tips, hue="time", col="time", size=4)
g.map(hexbin, "total_bill", "tip", extent=[0, 50, 0, 10])

【讨论】:

  • 这仍然不能解释为什么观察到的反行为,以防万一将色调传递为col
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多