我想在 seaborn 上繪制條形圖并包含自定義誤差線。我的 MWE 是
import pandas as pd
import seaborn as sns
w = pd.DataFrame(data={'length': [40,35,34,40,38,39,38,44,40,39,35,46],
'species': ['A','A','A','A','B','B','B','B','C','C','C','C'],
'type': ['today','avg','10pc','90pc','today','avg','10pc','90pc','today','avg','10pc','90pc']
},
)
w['Date'] = pd.to_datetime('2021-09-20')
w.set_index('Date',inplace=True)
w0 = w.loc[(w.type=='today') | (w.type=='avg')] # average length and today's length
w1 = w.loc[(w.type=='10pc') | (w.type=='90pc')] # 10th and 90th percentile
fig, ax = plt.subplots(figsize=(8,5))
y = sns.barplot(x=w0['species'], y=w0['length'], hue=w0['type'], yerr=w1['10pc','90pc'], capsize=.2)
y.set_title(w0.index[0].strftime('%d %b %Y'), fontsize=16)
y.set_xlabel('species', fontsize=14)
y.set_ylabel('length (cm)', fontsize=14)
y.grid(axis='y', lw=0.5)
plt.show()
其中today是今天的長度測量值,avg是平均測量值,10pc和90pc是第 10 和第 90 個百分位值。我嘗試yerr在barplot命令中設定,但這不起作用。我不確定如何配置 seaborn 以接受百分位值。
我想10pc為每個90pc. 這就是我的目標(我自己畫的黑條):avgspecies

uj5u.com熱心網友回復:
這是我的看法,使用 pandas 的繪圖功能,基于
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/438518.html
標籤:Python 熊猫 数据框 matplotlib 海运
