答案 0 :(得分:22)
答案 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)
给出: