我想知道是否可以将色调仅应用于seaborn的下部PairGrid
.
For example, say I have the following figure:
对于我需要展示的内容,我想将密度图保留在对角线上,将整体散点图保留在上部(在其上方打印相关系数,我知道该怎么做),但在下部我想将按色调向上点只是为了向我的观众展示如果我们对数据进行子集化会发生什么。
我想过找出上部的相关性,做一个色调图,然后将上部图中的所有标记更改为相同的颜色,但随后我失去了对角线上的密度。
有人知道我的问题是否可能吗?
我当前使用的代码是
ff = sns.PairGrid(test2,vars=['OzekePower','Power0','Power1','Power2'],palette="husl")
ff.map_upper(sns.scatterplot)
ff.map_lower(sns.scatterplot)
ff.map_diag(sns.kdeplot)
所以我希望是这样的ff.map_lower(sns.scatterplot,hue='species')
但这会产生错误。
编辑 - 如果我将诊断和上部留空并单独分配给空图,我可以做到这一点,但这似乎要长得多。
很遗憾,PairGrid
没有map_dataframe
方法,否则该方法可用于将更多数据帧列包含到映射中。一种黑客获取方式hue
仅在下部PairGrid
就是离开hue
论证中PairGrid
创建,并填充不需要色调的网格。
然后手动设置需要的参数hue
手动到网格最后调用map_lower
,然后它将看到网格,就好像它有一样hue
从一开始就指定。
import matplotlib.pyplot as plt
import seaborn as sns
df = sns.load_dataset("iris", cache=True)
g = sns.PairGrid(df)
g.map_upper(sns.scatterplot)
g.map_diag(sns.kdeplot)
# Now set parameters needed for `hue`
g.hue_vals = df["species"]
g.hue_names = df["species"].unique()
g.palette = sns.color_palette("husl", len(g.hue_names))
# Then map lower
g.map_lower(sns.scatterplot)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)