在seaborn Pairgrid中绘制下三角形

时间:2015-12-04 11:16:37

标签: python seaborn

我对seaborn Pairgrid有点挣扎。

让我们说我有这样的Pairgrid:

enter image description here

如您所见,上三角图反映了下三角图。 我希望能够只绘制下三角形图,但到目前为止我找不到简单的方法。你能救我吗?

2 个答案:

答案 0 :(得分:22)

可能应该是一种更简单的方法,但这是有效的

list2env(setNames(lst, paste0('df', seq_along(lst))), envir=.GlobalEnv)

enter image description here

答案 1 :(得分:0)

这基本上与接受的答案相同,但是使用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进行更多控制:

from itertools import groupby

def stackedhist(data, stackby, **kwds):
    groups = groupby(zip(stackby, data), lambda x: x[0])
    grouped_data = [[v for _, v in items] for key, items in groups]
    plt.hist(grouped_data, stacked=True, edgecolor='none')

g = sns.PairGrid(iris, diag_sharey=False)
g.map_lower(sns.scatterplot, data=iris, hue='species', alpha=0.3, edgecolor='none')
g.map_diag(stackedhist, stackby=iris['species'])
g.map_upper(hide_current_axis)

给出:

money shot