簡體   English   中英

在seaborn categorical plot中繪制類別意味着

[英]Plotting category means in seaborn categorical plot

我有一個在 x 軸上帶有定性變量的圖,每個類別的垂直散點使用sns.stripplot 我想指出每個類別的平均值。 也許每個類別的平均 y 值處有一條短水平線。 我怎樣才能做到這一點?

您可以使用matplotlib.pyplot.hlines來記錄線條的寬度和位置。 這是一個使用 seaborn tips數據集的示例

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

tips = sns.load_dataset("tips")
sns.stripplot(x="day", y="total_bill", data=tips)
labels = [e.get_text() for e in plt.gca().get_xticklabels()]
ticks = plt.gca().get_xticks()
w = 0.1
for day, idx in enumerate(labels):
    idx = labels.index(day)
    plt.hlines(tips[tips['day'] == day]['total_bill'].mean(), ticks[idx]-w, ticks[idx]+w)
plt.show()

在此處輸入圖片說明


一些解釋

labels = [e.get_text() for e in plt.gca().get_xticklabels()]

從 sns.stripplot 自動生成的sns.stripplot提取文本,這比tips['day'].unique()更有用,因為標簽的順序不一定與從tips['day'].unique返回的順序匹配. tips['day'].unique 這是因為如果未指定order參數,則訂單將是

[...] 從數據對象推斷。

plt.hlines(tips[tips['day'] == day]['total_bill'].mean(), ticks[idx]-w, ticks[idx]+w)

在 'strip' 的中心周圍和在'total_bill'列的平均值的高度處繪制長度為w*2 'total_bill'其中該行的'day'值等於當天。

暫無
暫無

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

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