[英]Why are no colors shown in kde subplots in seaborn pairplot?
我正在查看虹膜數據集(Fisher 1936)。 例如https://www.kaggle.com/uciml/iris/downloads/Iris.csv
使用參數創建seaborn pairplot
sns.pairplot(iris.drop("Id", axis=1), diag_kind="kde", hue="Species")
在對角線上返回帶有kde圖表的配對圖; 然而,我錯過了kde圖中不同物種的不同顏色,散射是精細和豐富多彩的。
我的結果與seaborn docs一致。 http://seaborn.pydata.org/tutorial/axis_grids.html
g = sns.pairplot(iris, hue="species", palette="Set2", diag_kind="kde", size=2.5)
但是有幾個不同的例子公布了顏色。 例如http://www.arunprakash.org/2017/06/data-visualisation-seaborn.html
sns.pairplot(iris, hue='Species', diag_kind='kde', size=2);
或https://www.kaggle.com/benhamner/python-data-visualizations
sns.pairplot(iris.drop("Id", axis=1), hue="Species", size=3, diag_kind="kde")
最新的seaborn API(版本0.8.0)有變化嗎? 是否故意刪除了顏色? 是否有一個kw再次顯示它們?
在sns.pairplot
的對角線上產生色調存在問題 。 此問題現已在seaborn版本0.8.1中修復。
如果一個人仍然感興趣,以下可能是一種解決方法。 您可以自己創建基礎PairGrid
並分別映射對角線和off_diagonal元素。 對於對角元素,首先從當前循環器獲取顏色,然后將此顏色用於kdeplot
。
import matplotlib.pyplot as plt
import seaborn as sns
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris, hue='species', size=2)
def f(x, **kwargs):
kwargs.pop("color")
col = next(plt.gca()._get_lines.prop_cycler)['color']
sns.kdeplot(x, color=col, **kwargs)
g.map_diag(f)
g.map_offdiag(plt.scatter)
g.add_legend()
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.