现在你已经能够创建自己的折线图了,是时候学习更多的图表类型了!

顺便说一下,如果这是你第一次在Python中编写代码,你应该为你所取得的成就感到非常自豪,因为学习全新的技能从来都不容易!如果你坚持学习,你会发现一切都会变得更容易(而你构建的图表也会更加令人印象深刻!),因为所有图表的代码都非常相似。像任何技能一样,编码随着时间和重复变得自然。

在本教程中,你将学习条形图热力图

设置笔记本

像往常一样,我们首先设置编码环境。( 这段代码是隐藏的,但是你可以点击下面的“代码”按钮将其显示出来。

import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")
Setup Complete

数据选择

在本教程中,我们将使用来自美国运输部的数据集来跟踪航班延误。

在 Excel 中打开这个 CSV 文件会显示每个月一行(其中 1 = January, 2 = February 等),每个航空公司代码一列。

image.jpg

每个条目显示不同航空公司和月份的平均到达延迟时间(分钟)(全部在2015年)。负项表示( 平均 )往往较早抵达的航班。例如,美国航空公司1月份的航班( 航空公司代码: AA )平均晚点约7分钟,阿拉斯加航空公司4月份的航班( 航空公司代码: AS )平均早点约3分钟。

数据加载

与前面一样,我们使用pd.read_csv命令加载数据集。

# Path of the file to read
flight_filepath = "../input/flight_delays.csv"

# Read the file into a variable flight_data
flight_data = pd.read_csv(flight_filepath, index_col="Month")

你可能会注意到,这段代码比我们在之前的教程中使用的代码稍微短一些。在这种情况下,由于行标签(来自'Month'列)不对应日期,我们不在括号中添加parse_dates=True。但是,我们保留前两段文本,以提供以下两个信息:

  • 数据集的文件路径(在本例中为flight_filepath);
  • 用于索引行的列的名称(在本例中为index_col="Month")。

检查数据

由于数据集很小,我们可以轻松打印出所有内容。只需编写一行代码,使用数据集的名称即可。

# Print the data
flight_data
AA AS B6 DL EV F9 HA MQ NK OO UA US VX WN
Month
1 6.955843 -0.320888 7.347281 -2.043847 8.537497 18.357238 3.512640 18.164974 11.398054 10.889894 6.352729 3.107457 1.420702 3.389466
2 7.530204 -0.782923 18.657673 5.614745 10.417236 27.424179 6.029967 21.301627 16.474466 9.588895 7.260662 7.114455 7.784410 3.501363
3 6.693587 -0.544731 10.741317 2.077965 6.730101 20.074855 3.468383 11.018418 10.039118 3.181693 4.892212 3.330787 5.348207 3.263341
4 4.931778 -3.009003 2.780105 0.083343 4.821253 12.640440 0.011022 5.131228 8.766224 3.223796 4.376092 2.660290 0.995507 2.996399
5 5.173878 -1.716398 -0.709019 0.149333 7.724290 13.007554 0.826426 5.466790 22.397347 4.141162 6.827695 0.681605 7.102021 5.680777
6 8.191017 -0.220621 5.047155 4.419594 13.952793 19.712951 0.882786 9.639323 35.561501 8.338477 16.932663 5.766296 5.779415 10.743462
7 3.870440 0.377408 5.841454 1.204862 6.926421 14.464543 2.001586 3.980289 14.352382 6.790333 10.262551 NaN 7.135773 10.504942
8 3.193907 2.503899 9.280950 0.653114 5.154422 9.175737 7.448029 1.896565 20.519018 5.606689 5.014041 NaN 5.106221 5.532108
9 -1.432732 -1.813800 3.539154 -3.703377 0.851062 0.978460 3.696915 -2.167268 8.000101 1.530896 -1.794265 NaN 0.070998 -1.336260
10 -0.580930 -2.993617 3.676787 -5.011516 2.303760 0.082127 0.467074 -3.735054 6.810736 1.750897 -2.456542 NaN 2.254278 -0.688851
11 0.772630 -1.916516 1.418299 -3.175414 4.415930 11.164527 -2.719894 0.220061 7.543881 4.925548 0.281064 NaN 0.116370 0.995684
12 4.149684 -1.846681 13.839290 2.504595 6.685176 9.346221 -1.706475 0.662486 12.733123 10.947612 7.012079 NaN 13.498720 6.720893

条形图

假设我们想创建一个条形图,按月显示Spirit航空公司(航空公司代码: NK)航班的平均到达延迟时间。

# Set the width and height of the figure
plt.figure(figsize=(10,6))

# Add title
plt.title("Average Arrival Delay for Spirit Airlines Flights, by Month")

# Bar chart showing average arrival delay for Spirit Airlines flights by month
sns.barplot(x=flight_data.index, y=flight_data['NK'])

# Add label for vertical axis
plt.ylabel("Arrival delay (in minutes)")

output71.png

自定义文本(标题和垂直轴标签)和图形大小的命令与先前的教程相似。创建条形图的代码是新的:

# 显示Spirit Airlines航班按月平均到达延误的条形图
sns.barplot(x=flight_data.index, y=flight_data['NK'])

它有三个主要组成部分:

  • sns.barplot - 告诉笔记本我们想要创建一个条形图。
  • 请记住,snsseaborn 包的缩写,您在本课程中使用的创建图表的所有命令都将以此前缀开头。
  • x=flight_data.index - 确定水平轴使用什么。在这种情况下,我们选择了用于 索引 行的列(在此情况下是包含月份的列)。
  • y=flight_data['NK'] - 设置将用于确定每个条的高度的数据列。在这种情况下,我们选择 'NK' 列。

重要提示:您必须使用flight_data.index选择索引列,无法使用flight_data['Month'](将返回错误)。这是因为我们加载数据集时,"Month"列用于索引行。我们总是必须使用这种特殊表示法来选择索引列。

热力图

我们还有一个要学习的绘图类型:热力图

在下面的代码单元格中,我们创建一个热力图,以快速可视化flight_data中的模式。每个单元格根据其相应的值进行彩色编码。

# Set the width and height of the figure
plt.figure(figsize=(14,7))

# Add title
plt.title("Average Arrival Delay for Each Airline, by Month")

# Heatmap showing average arrival delay for each airline by month
sns.heatmap(data=flight_data, annot=True)

# Add label for horizontal axis
plt.xlabel("Airline")

output91.png

创建热力图的相关代码如下:

# Heatmap showing average arrival delay for each airline by month
sns.heatmap(data=flight_data, annot=True)

此代码包含三个主要组件:

  • sns.heatmap - 告诉笔记本我们要创建热力图。
  • data=flight_data - 告诉笔记本使用flight_data中的所有条目来创建热力图。
  • annot=True - 确保每个单元格的值出现在图表上。(如果省略此代码,每个单元格中的数字将被删除!

您能在表格中发现什么模式吗?例如,如果您仔细观察,您会发现年底的月份(特别是9-11月)对于所有航空公司来说相对较暗。这表明在这些月份,航空公司在平均情况下更善于保持时间表!


标题:Kaggle数据可视化(三)条形图和热力图
作者:Departure
地址:https://www.unreachablecity.club/articles/2023/04/20/1682050663758.html