在 seaborn Pairgrid 中绘制下三角
Plot lower triangle in a seaborn Pairgrid
我对 seaborn Pairgrid 有点吃力。
假设我有一个这样的 Pairgrid:
如您所见,上三角图反映了下三角图。
我希望能够只绘制下三角图,但到目前为止我发现没有简单的方法可以做到这一点。你能帮帮我吗?
使用 seaborn >= 0.9.1:
import seaborn as sns
iris = sns.load_dataset("iris")
sns.pairplot(iris, corner=True)
这与接受的答案基本相同,但使用了来自seaborn.PairGrid
的官方方法:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
iris = sns.load_dataset("iris")
def hide_current_axis(*args, **kwds):
plt.gca().set_visible(False)
g = sns.pairplot(iris)
g.map_upper(hide_current_axis)
隐藏下半身也很简单:
g.map_lower(hide_current_axis)
或隐藏对角线:
g.map_diag(hide_current_axis)
或者,直接使用 PairGrid
以获得更多控制:
g = sns.PairGrid(iris, hue='species', diag_sharey=False)
g.map_lower(sns.scatterplot, alpha=0.3, edgecolor='none')
g.map_diag(sns.histplot, multiple="stack", element="step")
g.map_upper(hide_current_axis)
给出:
Since Seaborn 0.9.1有一个corner=True
设置,允许上面的改成:
import seaborn as sns
iris = sns.load_dataset("iris")
sns.pairplot(
iris, hue='species', corner=True,
plot_kws=dict(alpha=0.3, edgecolor='none'),
diag_kind="hist",
diag_kws=dict(multiple="stack", edgecolor='none'),
)
我对 seaborn Pairgrid 有点吃力。
假设我有一个这样的 Pairgrid:
如您所见,上三角图反映了下三角图。 我希望能够只绘制下三角图,但到目前为止我发现没有简单的方法可以做到这一点。你能帮帮我吗?
使用 seaborn >= 0.9.1:
import seaborn as sns
iris = sns.load_dataset("iris")
sns.pairplot(iris, corner=True)
这与接受的答案基本相同,但使用了来自seaborn.PairGrid
的官方方法:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
iris = sns.load_dataset("iris")
def hide_current_axis(*args, **kwds):
plt.gca().set_visible(False)
g = sns.pairplot(iris)
g.map_upper(hide_current_axis)
隐藏下半身也很简单:
g.map_lower(hide_current_axis)
或隐藏对角线:
g.map_diag(hide_current_axis)
或者,直接使用 PairGrid
以获得更多控制:
g = sns.PairGrid(iris, hue='species', diag_sharey=False)
g.map_lower(sns.scatterplot, alpha=0.3, edgecolor='none')
g.map_diag(sns.histplot, multiple="stack", element="step")
g.map_upper(hide_current_axis)
给出:
Since Seaborn 0.9.1有一个corner=True
设置,允许上面的改成:
import seaborn as sns
iris = sns.load_dataset("iris")
sns.pairplot(
iris, hue='species', corner=True,
plot_kws=dict(alpha=0.3, edgecolor='none'),
diag_kind="hist",
diag_kws=dict(multiple="stack", edgecolor='none'),
)