分组条形图是一种图表类型,它使用分组的条形来同时显示多个变量的值。
本教程提供了一个逐步的例子,说明如何使用Seaborn数据可视化包在Python中创建以下分组条形图。
第一步:创建数据
首先,让我们创建以下pandas数据框架,它显示了一家餐馆从周一到周五早晚接待的顾客总数。
import pandas as pd
#create DataFrame
df = pd.DataFrame({'Day': ['Mon', 'Tue', 'Wed', 'Thur', 'Fri',
'Mon', 'Tue', 'Wed', 'Thur', 'Fri'],
'Customers': [44, 46, 49, 59, 54,
33, 46, 50, 49, 60],
'Time': ['M', 'M', 'M', 'M', 'M',
'E', 'E', 'E', 'E', 'E']})
#view DataFrame
df
Day Customers Time
0 Mon 44 M
1 Tue 46 M
2 Wed 49 M
3 Thur 59 M
4 Fri 54 M
5 Mon 33 E
6 Tue 46 E
7 Wed 50 E
8 Thur 49 E
9 Fri 60 E
第2步:创建分组条形图
我们可以使用下面的代码来创建一个分组条形图,以直观地显示每天的顾客总数,并按时间分组。
import matplotlib.pyplot as plt
import seaborn as sns
#set seaborn plotting aesthetics
sns.set(style='white')
#create grouped bar chart
sns.barplot(x='Day', y='Customers', hue='Time', data=df)
X轴显示的是一周中的哪一天,条形图显示的是每天早上和晚上有多少顾客光顾该餐厅。
第3步:自定义分组条形图
下面的代码显示了如何添加轴的标题,添加一个整体的标题,改变条形图的颜色,以及旋转X轴的标签以使其更容易阅读。
import matplotlib.pyplot as plt
import seaborn as sns
#set seaborn plotting aesthetics
sns.set(style='white')
#create grouped bar chart
sns.barplot(x='Day', y='Customers', hue='Time', data=df,
palette=['purple', 'steelblue'])
#add overall title
plt.title('Customers by Time & Day of Week', fontsize=16)
#add axis titles
plt.xlabel('Day of Week')
plt.ylabel('Number of Customers')
#rotate x-axis labels
plt.xticks(rotation=45)
注意:我们为这个图设置了seaborn风格为'白色',但是你可以在这个页面上找到Seaborn绘图美学的完整列表。
其他资源
下面的教程解释了如何在Seaborn中创建其他常见的可视化图表。
如何在Seaborn中创建堆叠条形图
如何在Seaborn中创建饼图
如何在Seaborn中创建时间序列图
如何在Seaborn中创建面积图
The postHow to Create a Grouped Bar Plot in Seaborn (Step-by-Step) appeared first onStatology.