在 seaborn 0.11.2 中将色调应用于 PairGrid 的下部或上部
Applying hue to lower or upper part of PairGrid in seaborn 0.11.2
已提供此问题的解决方案 here。但是,对于较新版本的 seaborn (0.11.2),它不起作用,而是生成单一颜色的散点图。
这是之前提出的解决方案:
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()
产生:
谁能提出适用于 Seaborn 0.11.2 的解决方案?
我想我会这样做
df = sns.load_dataset("iris")
g = sns.PairGrid(df, hue="species")
g.map_upper(sns.scatterplot)
g.map_lower(sns.scatterplot, hue=None)
g.map_diag(sns.kdeplot, hue=None)
g.add_legend()
你可以用另一种方式来做,只在 map_upper
调用中分配 hue
。但是要使图例正确就更难了。
已提供此问题的解决方案 here。但是,对于较新版本的 seaborn (0.11.2),它不起作用,而是生成单一颜色的散点图。
这是之前提出的解决方案:
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()
产生:
谁能提出适用于 Seaborn 0.11.2 的解决方案?
我想我会这样做
df = sns.load_dataset("iris")
g = sns.PairGrid(df, hue="species")
g.map_upper(sns.scatterplot)
g.map_lower(sns.scatterplot, hue=None)
g.map_diag(sns.kdeplot, hue=None)
g.add_legend()
你可以用另一种方式来做,只在 map_upper
调用中分配 hue
。但是要使图例正确就更难了。