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