没有FacetGrid,但制作科尔热图的每一组中的列:
import pandas as pd
import seaborn as sns
from numpy.random import randint
import matplotlib.pyplot as plt
df = pd.DataFrame(randint(0,10,(200,12)),columns=list('abcdefghijkl'))
grouped = df.groupby('a')
rowlength = grouped.ngroups/2 # fix up if odd number of groups
fig, axs = plt.subplots(figsize=(9,4), nrows=2, ncols=rowlength)
targets = zip(grouped.groups.keys(), axs.flatten())
for i, (key, ax) in enumerate(targets):
sns.heatmap(grouped.get_group(key).corr(), ax=ax,
xticklabels=(i >= rowlength),
yticklabels=(i%rowlength==0),
cbar=False) # Use cbar_ax into single side axis
ax.set_title('a=%d'%key)
plt.show()
也许有一种方法来建立一个lambda通过正确地传递从g.facet_data()
发电机数据corr
之前去heatmap
。
你想要九个热点图,每个显示一个目标内的相关性? – cphlewis
是的,我接受了@cphlewis的回答,因为它可行,但是我目前喜欢seaborn的是,你可以快速和肮脏地绘制东西,因为你几乎可以告诉它“绘制这个”并且它会提出一些东西。我的用例非常多:对于我来说,如何安排热点图或显示哪些轴不是很重要,只是以我所要求的格式查看信息。所以得到的lambda的东西工作将是非常有用的:) – fakedrake
是的,我冲了它,并没有点击按钮妥善thanx :) – fakedrake