簡體   English   中英

更改 Seaborn 顯示中的屬性

[英]Changing properties in Seaborn displot

這看起來是一項非常簡單的任務,但我找不到正確的解決方案。 我確實生成了 10 個 collections,每個樣本有 100 個樣本,並將它們打包到pandas.DataFrame中,為每列分配索引號。

如何 plot 所有 10 行:所有 10 行相同顏色='b',設置 alpha=0.5,線寬=1.0?

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


sns.set_style("darkgrid")
sns.set_context("talk")
SEED = 202107
np.random.seed(SEED)
random.seed(SEED)


Num = 10
val = [np.random.randn() for _ in range(Num)]
my_data = [mu + np.random.randn(100) for mu in val]

df = pd.DataFrame()
for index in range(Num):
    name = str(index)
    df[name] = my_data[index][:]

sns.displot(df, kind='kde', legend=False)


plt.show()

答案需要意識到在寬格式模式下displot將列維度分配給hue變量。 因此,您可以通過palette參數控制顏色,而使所有內容都變成一種顏色的最簡單方法是傳遞具有正確長度的相同條目列表。 其他屬性可以通過傳遞給plt.plot的 matplotlib 關鍵字 arguments 來控制:

g = sns.displot(
    df, kind='kde', legend=False,
    palette=["C0"] * Num, linewidth=1
)
plt.setp(g.ax.lines, alpha=.5)

在此處輸入圖像描述

看起來有一個忽略alpha=的錯誤,您可以通過在繪圖后修改藝術家(如上)或將調色板定義為[mpl.colors.to_rgba("C0", alpha=.5)] * Num

暫無
暫無

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

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