【发布时间】:2021-03-01 16:08:22
【问题描述】:
您好,我想在 seaborn 直方图子图中添加分位数和均值线。
示例数据:
import seaborn as sns
from matplotlib import pyplot as plt
penguins = sns.load_dataset("penguins")
penguins.dropna(inplace=True)
fig, axes = plt.subplots(2, 2, figsize=(20, 7))
plot_data = penguins[['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']]
for col, ax in zip(plot_data, axes.flat):
print(col, ax)
sns.histplot(ax=ax, data=plot_data, x=plot_data[col], hue=penguins['sex'], multiple='stack')
将分位数线添加到单个子图:axes[0,0].axvline(plot_data['bill_length_mm'].quantile(0.25), 0, 1, color='red', ls='--')
我想为每个子图添加 0.25、0.5、0.75 分位数和平均值。
我试过了,但是不行
quantiles = [0.25, 0.5, 0.75]
colors = ['green', 'red', 'blue']
l = []
for col in plot_data.columns:
for q, c in zip(quantiles, colors):
l.append([col, q, plot_data.loc[:,col].quantile(q), c])
for l_, ax in zip(l, axes):
ax.axvline(l_[2], 0, 1, color=l[3], ls='--')
【问题讨论】: