只需要在groupby中更改列的顺序:
import pandas as pd
import seaborn as sns
import matplotlib.pylab as plt
titanic = sns.load_dataset("titanic")
my_colors = ['r','g','b','k','y','magenta']
titanic.groupby(['pclass', 'sex'])['survived'].mean().plot(kind='bar', color=my_colors)
plt.show()
或者您可以堆叠这些条形图:
titanic.groupby(['pclass', 'sex'])['survived'].mean().unstack('sex').plot(kind='bar', stacked=True)
为什么要使用mean
而不是count
?该如何理解这两个术语的区别?
在编程方面,Altair非常方便。以下是三个不同的一行代码,可以生成这个数据集的三个不同可视化效果。
import seaborn as sns
titanic = sns.load_dataset("titanic")
from altair import *
Chart(titanic).mark_bar().encode(x='pclass:O', y='mean(survived)', column='sex').configure_cell(width=200, height=200)
Chart(titanic).mark_bar().encode(x='sex:N', y='mean(survived):Q', column='pclass:O').configure_facet_cell(
strokeWidth=0.0).configure_cell(width=200, height=200)
Chart(titanic).mark_bar().encode(x='pclass:O', y='mean(survived):Q', color='sex:O').configure_cell(width=200, height=200)