如何创建 Seaborn Pairplot 图例
How to create a Seaborn Pairplot legend
这是我为加利福尼亚和德克萨斯绘制一些 covid 数据的代码。我只是简单地获取了我的大数据框 (df_covidNew
),并且只查看了 CA 和 TX。
df_CA = df_covidNew[df_covidNew.state == "CA"]
df_TX = df_covidNew[df_covidNew.state == "TX"]
然后我使用 groupby()
函数来获取我想在成对图中绘制的信息:
CA = df_CA.groupby(['month','month_name','state'])[['positive','negative','hospitalizedCurrently','death']].sum()
TX = df_TX.groupby(['month','month_name','state'])[['positive','negative','hospitalizedCurrently','death']].sum()
然后我使用 concat
将两个 DataFrame 合并在一起:
df = pd.concat([CA,TX])
我尝试使用 seaborn 绘制它,但结果显示为相同的颜色。 CA和TX之间没有区别,这使得情节几乎没有用。
sns.pairplot(df)
这是它的样子:
PairPlot output
有什么方法可以根据图例区分 TX 和 CA?我尝试了图例方法,但它只是说 'no legend handles'.
基于 seaborn pairplot documentation 和你的 DataFrame 结构,我认为你需要将你的 MultiIndex 重置为列,然后传递 hue="state"
:
sns.pairplot(df.reset_index(), hue="state")
这是我为加利福尼亚和德克萨斯绘制一些 covid 数据的代码。我只是简单地获取了我的大数据框 (df_covidNew
),并且只查看了 CA 和 TX。
df_CA = df_covidNew[df_covidNew.state == "CA"]
df_TX = df_covidNew[df_covidNew.state == "TX"]
然后我使用 groupby()
函数来获取我想在成对图中绘制的信息:
CA = df_CA.groupby(['month','month_name','state'])[['positive','negative','hospitalizedCurrently','death']].sum()
TX = df_TX.groupby(['month','month_name','state'])[['positive','negative','hospitalizedCurrently','death']].sum()
然后我使用 concat
将两个 DataFrame 合并在一起:
df = pd.concat([CA,TX])
我尝试使用 seaborn 绘制它,但结果显示为相同的颜色。 CA和TX之间没有区别,这使得情节几乎没有用。
sns.pairplot(df)
这是它的样子: PairPlot output
有什么方法可以根据图例区分 TX 和 CA?我尝试了图例方法,但它只是说 'no legend handles'.
基于 seaborn pairplot documentation 和你的 DataFrame 结构,我认为你需要将你的 MultiIndex 重置为列,然后传递 hue="state"
:
sns.pairplot(df.reset_index(), hue="state")