簡體   English   中英

relplot seaborn 中的圖例大小/標記

[英]Legend size/marker in relplot seaborn

我一直在尋找 SO 以增加 relplot 中的圖例/色調大小。

plt.rcParams["axes.labelsize"] = 20
g = sns.relplot(x='Time(days)', y='Duration Total (s)', hue='Outcome', data=t1,height=15, aspect=1, s=50);
plt.suptitle("a_10",fontsize=25, fontweight='bold')

我似乎無法繞過它。 有這么多混合引用,這有點令人困惑。

我花了一些時間來研究這個,是的,你說它令人困惑是正確的。

我還將假設您在談論文本大小,而不是標記大小。

有效的方法

我建議您增加圖例大小的主要方法有兩種(從此處檢索):

  • 使用sns.set()全局縮放字體。 例如:
sns.set(font_scale=1.5)
# plotting code here...
  • 使用sns.plotting_context()在本地sns.plotting_context()字體。 例如:
with sns.plotting_context("notebook", font_scale=1.5):
    # plotting code here...

這兩種方法的問題在於它們還會增加其他元素的大小 因此,例如,軸標簽將與圖例一起增長:

行不通的方式

在提到的 SO鏈接中,還有一個解決直接修改圖例的答案。 它采用了私有財產_legend的的FacetGrid並直接增加了文字大小:

g = sns.relplot(x='sepal_length', y='sepal_width', hue='species', data=iris)
plt.setp(g._legend.get_texts(), fontsize=16)

但是,這種方法會嚴重破壞格式。 乍一看,我認為這是因為FacetGrid使用圖例尺寸計算其大小。 因此,事后更改圖例會將事情搞砸。

該怎么辦?

從我的研究來看,似乎沒有簡單的方法可以做你想做的事。 您可以向seaborn 存儲庫提交問題,也許他們會修復它(您可以參考您的問題)。 更希望,有一種方法可以做到這一點,他們會簡單地指出如何。

祝你好運 :)

如果有人仍然偶然發現這篇文章,這里有一個對我有用的解決方案:

如何設置圖例標記大小和 alpha?

所需的代碼是:

for lh in g._legend.legendHandles: 
    lh.set_alpha(1)
    lh._sizes = [50] 

暫無
暫無

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

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