数据可视化:python调用pyecharts库绘制航线专题图

本文介绍了一项数据通讯课程作业,使用Python的pyecharts库对各城市到上海虹桥及浦东机场的航班信息进行可视化与分析的过程。通过C#与selenium爬取携程网数据,利用numpy与pandas进行数据清洗,最终生成条形图、航线图和桑基图,展示了航班数量分布及流向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

这学期上了数据通讯这门课,其中有一个作业是要求爬取某一天各重要城市到上海虹桥以及上海浦东两机场的航班信息,然后进行可视化、数据分析。在这一份作业用到的可视化工具是python的pyecharts库,其中一幅图的效果如下:
在这里插入图片描述事实上这航线图是可以动的,只是截了个屏,下面具体说一下怎么操作。用到的库除了pyecharts,还有numpy、panda.

第一步 获取数据

要做数据的可视化,首先肯定要获取数据。我是采用C#+selenium动态爬取携程网上的10月30号的数据,selenium通过调用命令模拟人与浏览器的交互,效果不错。爬取下来的数据放在了一个文件夹里,每个城市到上海的存入一个文本文档中。

第二步 数据处理

在这里我是用numpy+pandas处理数据的,没安装这两个包的先安装再进行操作。

1.读取原始数据
import numpy as np
import pandas as pd
import os
df =pd.read_fwf(r"C:\Users\58381\Desktop\data\北京—上海.txt",encoding = "utf-8",header=None, names=["航班号","飞机机型","出发时间","出发机场","到达时间","到达机场","出发城市"])
for filename in os.listdir(r'C:\Users\58381\Desktop\data'):
    df1 =pd.read_fwf('C:\\Users\\58381\\Desktop\\data\\'+filename,encoding = "utf-8",header=None, names=["航班号","飞机机型","出发时间","出发机场","到达时间","到达机场","出发城市"])
    df = pd.merge(df1,df,how='outer',on=["航班号","飞机机型","出发时间","出发机场","到达时间","到达机场","出发城市"])
    
2.剔除共享航班的数据
df = df[ ~ df['航班号'].str.contains('共享') ]
#把文件中含有共享的删掉,即获得真正准确的数据
df.tail()#展示后五条数据

在这里插入图片描述

第三步 简单数据可视化

把各城市到虹桥机场的航班数分别统计

dh = df[ ~ df['到达机场'].str.contains('浦东') ]
#把文件中含有浦东的删掉,即获取含有虹桥的数据
dp = df[ ~ df['到达机场'].str.contains('虹桥') ]
#把文件中含有虹桥的删掉,获取浦东机场的数据
dh1 = pd.value_counts(dh["出发城市"])#各城市到达虹桥机场的航班数
dp1 = pd.value_counts(dp["出发城市"])#各城市到达浦东机场的航班数
1.条形图制作

然后将航班数量排名前十的城市拿出来制作条形图,这里就开始用到pyecharts库,关于怎么安装在我上一篇博客已经说了。在jupyter中安装pyecharts

hq_top = dh1.head(10)#取到虹桥航班数量前十的城市
pd_top = dp1.head(10)#取浦东
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
    
Bar()
.add_xaxis(hq_top.index)
.add_yaxis("航班数",hq_top.values)
.set_global_opts(title_opts=opts.TitleOpts(title="到达虹桥航班数top10城市")
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值