繁体   English   中英

如何使用seaborn绘制此图?

[英]How do I plot this using seaborn?

import matplotlib.pyplot as plt
import seaborn as sns

rankings_by_age = star_wars.groupby("Age").agg(np.mean).iloc[:,8:]

age_first = rankings_by_age.iloc[0, :].values
age_second = rankings_by_age.iloc[1, :].values
age_third = rankings_by_age.iloc[2, :].values
age_fourth = rankings_by_age.iloc[3, :].values

fig, ax = plt.subplots(figsize=(12, 9))

ind = np.arange(6)
width = 0.2

rects_1 = ax.bar(ind, age_first, width, color=(114/255,158/255,206/255), 
alpha=.8)
rects_2 = ax.bar(ind+width, age_second, width, color=
(255/255,158/255,74/255), alpha=.8)
rects_3 = ax.bar(ind+2*width, age_third, width, color=
(103/255,191/255,92/255), alpha=.8)
rects_4 = ax.bar(ind+3*width, age_fourth, width, color=
(237/255,102/255,93/255), alpha=.8)

ax.set_title("Star Wars Film Rankings by Age")
ax.set_ylabel("Ranking")
ax.set_xticks(ind)
ax.set_xticklabels(titles, rotation=45)

ax.tick_params(top='off', right='off', left='off', bottom='off')
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

ax.legend((rects_1[0], rects_2[0], rects_3[0], rects_4[0]), ('18-29', '30-
44', '45-60', '> 60'), title="Age")

plt.show()

在此处输入图片说明

我想使用seaborn复制该图,但是我不确定如何为每个类别绘制多个条形图。 我知道如何一次只使用一个年龄段,但是每个年龄段获得一个以上的酒吧似乎很棘手。 任何帮助,将不胜感激。

引用seaborn条形图文档 ,您可以使用hue参数确定应将条形分组的数据框的哪一列。

import seaborn.apionly as sns
import matplotlib.pyplot as plt

df = sns.load_dataset("tips")
ax = sns.barplot(data=df, x="day", y="total_bill", hue="sex")

plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM