沒有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