现在你已经能够创建自己的折线图了,是时候学习更多的图表类型了!
顺便说一下,如果这是你第一次在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 等),每个航空公司代码一列。
每个条目显示不同航空公司和月份的平均到达延迟时间(分钟)(全部在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)")
自定义文本(标题和垂直轴标签)和图形大小的命令与先前的教程相似。创建条形图的代码是新的:
# 显示Spirit Airlines航班按月平均到达延误的条形图
sns.barplot(x=flight_data.index, y=flight_data['NK'])
它有三个主要组成部分:
sns.barplot
- 告诉笔记本我们想要创建一个条形图。- 请记住,
sns
是 seaborn 包的缩写,您在本课程中使用的创建图表的所有命令都将以此前缀开头。 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")
创建热力图的相关代码如下:
# 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
Comments | 0 条评论