簡體   English   中英

Seaborn 散點圖隱藏了傳說中的系列

[英]Seaborn Scatterplot is hiding series from legend

我有跟隨Dataframe的系列:

深度:浮動

標准:浮動

有效:Boolean

我正在使用 Seaborn lib 中的散點圖function 繪制這些數據,其中Std 是我的 X 軸,深度 Y 軸,isValid 是 ZC1C425268E683854F14AB5074C17A 屬性

plot 工作正常。

傳說是問題。 我需要在我的圖例中顯示Rejected for False 和 Approved for True values

但是,當 isValid 中的所有值都為 True 或所有值都為 False 時,seaborn 會隱藏我的系列之一並在圖例中僅顯示一個值。

有沒有辦法避免它並在我的傳奇中保留這兩個系列? 否則我將需要做兩個 plot 並且不想這樣做。

提前致謝。

您可以使用hue_order=...在圖例中始終擁有這兩個值。 使用.replace您可以將 boolean 色調值替換為字符串。

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

fig, axs = plt.subplots(ncols=3, figsize=(15,3))
for ax, title in zip(axs, ['Both', 'only False', 'only True']):
     df = pd.DataFrame({'Depth': np.random.randn(100).cumsum() + 20,
                        'Std': np.random.randn(100).cumsum() * .1 + 2,
                        'Valid': np.random.randint(0, 2, 100).astype(bool)})
     if 'only' in title:
          df['Valid'] = 'True' in title
     df['Valid'] = df['Valid'].replace({True: 'Valid', False: 'Unvalid'})
     sns.scatterplot(data=df, x='Depth', y='Std',
                hue='Valid', hue_order=['Unvalid', 'Valid'], palette=['tomato', 'limegreen'], ax=ax)
     ax.set_title(title)
plt.tight_layout()
plt.show()

sns.scatterplot 圖例中未使用的色調值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM