我正在尝试绘制与seaborn文档中描述的非常相似的情况 http://seaborn.pydata.org/tutorial/axis_grids.html#plotting-pairwise-relationships-with-pairgrid-and-pairplot
有问题的例子可以找到一些图表,用虹膜数据集绘制sns.PairGrid
。他们在样本对网格上绘制不同的物种,物种颜色编码为色调。
我想基本上这样做,但是使用kde等高线图。我得到的格式与它们的格式相同:
new_HP.head()
A C logsw Mass Range
0 -3.365547 0.977325 6.172032 0
1 -0.836703 0.962374 5.949639 0
2 -0.522476 0.931787 5.967940 0
3 -0.508345 0.974561 5.929046 0
4 -0.753747 0.905854 6.027479 0
“质量范围”取值0,1,2,3。与
g = sns.PairGrid(new_HP, vars=['A', 'C', 'logsw'], hue="Mass Range")
g.map_diag(sns.kdeplot)
g.map_lower(sns.kdeplot)
g.map_upper(plt.scatter)
答案 0 :(得分:2)
如果你不介意轻度滥用Python函数属性,你可以尝试这样的事情:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from itertools import cycle
data = sns.load_dataset('iris')
def make_kde(*args, **kwargs):
sns.kdeplot(*args, cmap=next(make_kde.cmap_cycle), **kwargs)
make_kde.cmap_cycle = cycle(('Blues_r', 'Greens_r', 'Reds_r'))
pg = sns.PairGrid(data, vars=('sepal_length', 'sepal_width', 'petal_length'), hue='species')
pg.map_diag(sns.kdeplot)
pg.map_lower(make_kde)
pg.map_upper(plt.scatter)
这将循环显示存储在cmap_cycle
函数附带的make_kde
属性中的颜色映射列表。