参考来源:Vitu.AI
在上一篇中你已经学会了如何画折线图,接下来我们来学习柱状图和热力图
设置你的Notebook
我们还是老样子在开头先设置一下
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
print("设置完成")
选择数据集
在本篇中我们将使用来自于美国交通部关于航班延迟的数据
点击这里 下载 数据集
用excel打开如下:
我们可以看到每个cell代表每家航空公司在2015年每个月的平均延迟时间(分钟),负数代表航班提前到达,例如美国航空(AA)在一月平均延误7分钟
我们再把csv文件上传到vitu的数据集空间里
接下来我们用pandas来加载这个文件:
# Path of the file to read
flight_filepath = "flight_delays.csv"
# Read the file into a variable flight_data
flight_data = pd.read_csv(flight_filepath, index_col="Month")
你会注意到这次我们的read_csv代码和之前的篇章有一点不同,这次的数据Month不再是dates所以我们不必再加parse_dates=True
是时候来检验一下数据了
由于这次的数据比较小,所以我们可以来看看整个数据集
# Print the data
flight_data
柱状图
比如我们想画一个柱状图显示一下按照月的Spirit Airlines(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)")
这句话创造了一个柱状图
sns.barplot(x=flight_data.index, y=flight_data['NK'])
里面有这么几个点
- sns.barplot - 这个告诉notebook我们想画一个柱状图
- x=flight_data.index - 这个表示x坐标使用的是flight_data这一列的索引,在这里也就是月份
- y=flight_data['NK'] - 这个便是y坐标使用的是NK的延迟数据
热力图
本篇还有另外一个图要介绍
我们会在一下的代码里创造一个热力图来看flight_data,每个cell都是一个根据实际值有色的cell
# 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")
图中可以直观的看到哪个航空公司的延迟最严重,NK!