【数据可视化-88】航空公司航班数据分析与可视化:Python + pyecharts洞察航空旅行趋势
🧑 博主简介:曾任某智慧城市类企业
算法总监
,目前在美国市场的物流公司从事高级算法工程师
一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【数据可视化-88】航空公司航班数据分析与可视化:Python + pyecharts洞察航空旅行趋势
- 一、引言
- 二、数据概览
- 三、数据可视化
- 3.1 航空公司频率分析(玫瑰图)
- 3.2 出发时间和到达时间分布(条形图)
- 3.3 城市间航班分布(桑基图)
- 3.4 航空公司价格对比(箱线图)
- 3.5 出发时间与价格关系(热力图)
- 3.6 提前购票天数与价格关系(散点图)
- 四、创建可视化大屏
- 五、可视化结果分析
- 5.1 航空公司频率分析(玫瑰图)
- 5.2 出发时间和到达时间分布(条形图)
- 5.3 源城市和目的地城市分布(条形图)
- 5.4 航空公司票价对比(箱线图)
- 5.5 出发时间与价格关系(热力图)
- 5.6 提前购票天数与价格关系(散点图)
- 六、结论
一、引言
在当今的全球化时代,航空旅行已成为连接世界的重要纽带。通过深入分析航空公司的航班数据,我们可以揭示旅行趋势、优化定价策略,并提升客户体验。本文将利用Python和pyecharts库对航空公司航班数据进行详尽的分析和可视化,以期为航空业提供数据驱动的洞察。
二、数据概览
我们的数据集包含了以下关键特征:
- 航空公司:涉及6家不同的航空公司。
- 航班:飞机航班代码信息。
- 始发城市和目的地城市:共6个独特的城市。
- 出发时间和到达时间:包含6个唯一的时间标签。
- 停靠点:源城市和目的地城市之间的停靠点数量,共3个不同值。
- 等级:座位等级信息,包括商业和经济两种。
- 持续时间:城市间旅行所需的总时间(小时)。
- 剩余天数:旅行日期减去预订日期。
- 价格:票价信息。
三、数据可视化
为了更好地理解数据,我们将绘制以下几种图表:
- 航空公司频率分析(玫瑰图)
- 出发时间和到达时间分布(条形图)
- 源城市和目的地城市分布(条形图)
- 航空公司票价对比(箱线图)
- 出发时间与价格关系(热力图)
- 提前购票天数与价格关系(散点图)
3.1 航空公司频率分析(玫瑰图)
# 1. 航空公司频率分析(玫瑰图)
def airline_frequency():data = df['airline'].value_counts()c = (Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color='#0A0A0A')).add(series_name="航空公司",data_pair=[list(z) for z in zip(data.index.tolist(), data.values.tolist())],radius=["30%", "70%"],rosetype="radius",label_opts=opts.LabelOpts(color="#fff"),).set_global_opts(title_opts=opts.TitleOpts(title="各航空公司航班频率分布", pos_left="center",title_textstyle_opts=opts.TextStyleOpts(color="#fff")),legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%", textstyle_opts=opts.TextStyleOpts(color="#fff")),))return c
3.2 出发时间和到达时间分布(条形图)
# 2. 出发时间和到达时间分布(条形图)
def time_distribution():dep_data = df['departure_time'].value_counts().sort_index()arr_data = df['arrival_time'].value_counts().sort_index()bar = (Bar().add_xaxis(dep_data.index.tolist()).add_yaxis("出发时间", dep_data.values.tolist(), stack="stack1").add_yaxis("到达时间", arr_data.values.tolist(), stack="stack1"))return bar
3.3 城市间航班分布(桑基图)
# 3. 城市间航班分布(桑基图)
def city_sankey():sankey = (Sankey(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color='#0A0A0A')).add(series_name="",nodes=nodes,links=links,linestyle_opt=opts.LineStyleOpts(opacity=0.3, curve=0.5, color="source"),label_opts=opts.LabelOpts(color="rgba(255,255,255,0.8)"),node_width=20,node_gap=10,))return sankey
3.4 航空公司价格对比(箱线图)
# 4. 航空公司价格对比(箱线图)
def airline_price_boxplot():boxplot = Boxplot()boxplot = (boxplot.add_xaxis(airlines.tolist()).add_yaxis("", y_axis=boxplot.prepare_data(data)))return boxplot
3.5 出发时间与价格关系(热力图)
# 5. 出发时间与价格关系(热力图)
def time_price_heatmap():heatmap = (HeatMap(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color='#0A0A0A')).add_xaxis(pivot_table.columns.tolist()).add_yaxis(series_name="价格",yaxis_data=pivot_table.index.tolist(),value=value,label_opts=opts.LabelOpts(is_show=True, position="inside"),))return heatmap
3.6 提前购票天数与价格关系(散点图)
# 6. 提前购票天数与价格关系(散点图)
def booking_days_price():scatter = (Scatter().add_xaxis(data['days_left'].tolist()).add_yaxis(series_name="价格",y_axis=data['mean_price'].tolist(),symbol_size=8,label_opts=opts.LabelOpts(is_show=False),))return scatter
四、创建可视化大屏
# 创建可视化大屏
def create_dashboard():page = Page(layout=Page.DraggablePageLayout, page_title="航空公司航班数据分析大屏")page.add(airline_frequency(),time_distribution(),city_sankey(),airline_price_boxplot(),time_price_heatmap(),booking_days_price())page.render("airline_dashboard.html")print("可视化大屏已生成: airline_dashboard.html")create_dashboard()
五、可视化结果分析
5.1 航空公司频率分析(玫瑰图)
玫瑰图展示了不同航空公司的航班频率。通过图表,我们可以直观地看到哪些航空公司在数据集中占据主导地位。
5.2 出发时间和到达时间分布(条形图)
条形图展示了不同出发时间和到达时间的航班数量。通过图表,我们可以观察到航班在一天中的分布情况,识别出高峰时段。
5.3 源城市和目的地城市分布(条形图)
条形图展示了不同始发城市和目的地城市的航班数量。这有助于我们了解哪些城市之间的航班最为频繁。
5.4 航空公司票价对比(箱线图)
箱线图展示了不同航空公司的票价分布。通过图表,我们可以分析出哪些航空公司的票价更高。
5.5 出发时间与价格关系(热力图)
热力图显示了不同出发时间和到达时间的票价分布。这有助于我们了解票价在一天中的变化趋势。
5.6 提前购票天数与价格关系(散点图)
散点图展示了提前购票天数与票价的关系。通过图表,我们可以分析出提前购票对票价的影响。
六、结论
通过上述分析,我们可以得出以下结论:
- 某些航空公司在数据集中占据主导地位,这可能与它们的市场份额和运营策略有关。
- 航班在一天中的分布不均,存在明显的高峰时段,这可能与旅客的出行习惯和需求有关。
- 某些城市之间的航班更为频繁,这可能与这些城市的经济活动和旅游吸引力有关。
- 不同航空公司的票价存在差异,这可能与它们的服务水平和品牌形象有关。
- 票价在一天中的变化趋势可能与供需关系和运营成本有关。
- 提前购票对票价有显著影响,这表明提前预订可能有助于降低票价。
这些分析结果可以帮助航空公司优化航班安排、调整票价策略,并提升客户满意度。