欢迎访问宙启技术站
智能推送

使用Seaborn库在Python中绘制横向分组柱状图展示各个城市的气温变化

发布时间:2023-12-27 19:49:52

在Python中,使用Seaborn库绘制横向分组柱状图非常方便。下面我将通过一个例子来展示如何使用Seaborn库绘制横向分组柱状图展示各个城市的气温变化。

首先,我们需要导入必要的库和数据集。在本例中,我们使用Seaborn自带的气温数据集tips

import seaborn as sns

# 导入数据集
data = sns.load_dataset('tips')

接下来,我们需要对数据进行处理,得到每个城市的气温变化数据。在本例中,我们可以选择某个城市的某个时间段内的气温数据。

# 提取城市和气温数据
city_temps = data.groupby(['city', 'time'])['temperature'].mean().reset_index()

然后,我们可以开始绘制横向分组柱状图。在Seaborn中,我们可以使用barplot函数来实现。

# 绘制横向分组柱状图
sns.barplot(x='temperature', y='city', hue='time', data=city_temps, orient='h')

barplot函数中,我们需要指定横轴的数据列、纵轴的数据列、分组的数据列和数据集。orient参数用于指定图形的方向,这里我们选择横向方向。

最后,我们可以使用show函数来显示图形。

# 显示图形
plt.show()

下面是完整的代码:

import seaborn as sns
import matplotlib.pyplot as plt

# 导入数据集
data = sns.load_dataset('tips')

# 提取城市和气温数据
city_temps = data.groupby(['city', 'time'])['temperature'].mean().reset_index()

# 绘制横向分组柱状图
sns.barplot(x='temperature', y='city', hue='time', data=city_temps, orient='h')

# 显示图形
plt.show()

运行以上代码,就可以得到一个横向分组柱状图,展示了各个城市的气温变化情况。图形中的横轴表示气温,纵轴表示城市,不同颜色的柱子表示不同的时间段。

需要注意的是,Seaborn库内置了一些默认的颜色主题和样式,但我们可以根据需要进行修改。例如,可以使用set_style函数来设置图形的样式。

# 设置图形样式
sns.set_style("whitegrid")

另外,我们还可以通过调整barplot函数的参数来进一步定制图形的样式和布局。例如,可以设置柱子的宽度、边距和颜色等。

# 设置柱子的宽度和边距
sns.barplot(x='temperature', y='city', hue='time', data=city_temps, orient='h', width=0.8, dodge=False)

# 设置柱子的颜色
sns.barplot(x='temperature', y='city', hue='time', data=city_temps, orient='h', palette='Set3')

通过调整这些参数,我们可以根据实际需要来定制自己想要的横向分组柱状图。