具有 loc 条件的 Seaborn 色调
Seaborn hue with loc condition
我面临以下问题:我想用 seaborn 创建一个 lmplot,我想区分颜色不是基于现有列,而是基于条件 寻址到列。
给定以下租金价格预测 df:
area
rental price
year build
...
40
400
1990
...
60
840
1995
...
480
16
1997
...
...
...
...
...
sns.lmplot(x="area", y="rental price", data=df, hue = df.loc[df['year build'] > 1992])
上面这个不起作用。我知道我可以添加一个表示此条件的列并在“hue”中处理此列,但是没有办法给 seaborn 一个 hue 条件吗?
提前致谢!
您可以添加一个包含布尔信息的新列并将其用于色调。例如 data['at least from eighties'] = data['model_year'] >= 80
。这将创建一个图例,其中列名作为标题,False
和 True
作为文本。如果您将值映射到字符串,这些将出现。这是一个使用 seaborn 的演示数据集之一的示例:
import matplotlib.pyplot as plt
import seaborn as sns
df = sns.load_dataset('mpg')
df['decenium'] = (df['model_year'] >= 80).map({False: "seventies", True: "eighties"})
sns.lmplot(x='weight', y='mpg', data=df, hue='decenium')
plt.tight_layout()
plt.show()
我面临以下问题:我想用 seaborn 创建一个 lmplot,我想区分颜色不是基于现有列,而是基于条件 寻址到列。
给定以下租金价格预测 df:
area | rental price | year build | ... |
---|---|---|---|
40 | 400 | 1990 | ... |
60 | 840 | 1995 | ... |
480 | 16 | 1997 | ... |
... | ... | ... | ... |
sns.lmplot(x="area", y="rental price", data=df, hue = df.loc[df['year build'] > 1992])
上面这个不起作用。我知道我可以添加一个表示此条件的列并在“hue”中处理此列,但是没有办法给 seaborn 一个 hue 条件吗?
提前致谢!
您可以添加一个包含布尔信息的新列并将其用于色调。例如 data['at least from eighties'] = data['model_year'] >= 80
。这将创建一个图例,其中列名作为标题,False
和 True
作为文本。如果您将值映射到字符串,这些将出现。这是一个使用 seaborn 的演示数据集之一的示例:
import matplotlib.pyplot as plt
import seaborn as sns
df = sns.load_dataset('mpg')
df['decenium'] = (df['model_year'] >= 80).map({False: "seventies", True: "eighties"})
sns.lmplot(x='weight', y='mpg', data=df, hue='decenium')
plt.tight_layout()
plt.show()