🧑 博主简介:曾任某智慧城市类企业
算法总监
,目前在美国市场的物流公司从事高级算法工程师
一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【数据可视化-88】航空公司航班数据分析与可视化:Python + pyecharts洞察航空旅行趋势
一、引言
在当今的全球化时代,航空旅行已成为连接世界的重要纽带。通过深入分析航空公司的航班数据,我们可以揭示旅行趋势、优化定价策略,并提升客户体验。本文将利用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 提前购票天数与价格关系(散点图)
散点图展示了提前购票天数与票价的关系。通过图表,我们可以分析出提前购票对票价的影响。
六、结论
通过上述分析,我们可以得出以下结论:
- 某些航空公司在数据集中占据主导地位,这可能与它们的市场份额和运营策略有关。
- 航班在一天中的分布不均,存在明显的高峰时段,这可能与旅客的出行习惯和需求有关。
- 某些城市之间的航班更为频繁,这可能与这些城市的经济活动和旅游吸引力有关。
- 不同航空公司的票价存在差异,这可能与它们的服务水平和品牌形象有关。
- 票价在一天中的变化趋势可能与供需关系和运营成本有关。
- 提前购票对票价有显著影响,这表明提前预订可能有助于降低票价。
这些分析结果可以帮助航空公司优化航班安排、调整票价策略,并提升客户满意度。