当前位置: 首页 > ds >正文

python可视化:北方城市客流变化分析2

python可视化:北方城市客流变化分析2

接上一节内容,要全面分析北方一线/新一线城市客流减少和三线城市客流增加的趋势,除了常住人口数据外,还可以从多个维度获取指标并进行可视化分析。

关键指标体系

1. 交通出行数据

  • 铁路/航空客运量:一线城市始发/到达量变化趋势
  • 高速公路流量:城市出入口车流量统计
  • 市内交通数据:地铁/公交客运量变化

2. 节假日旅游数据

  • 景区游客量:5A/4A景区接待游客数对比
  • 酒店入住率:各城市星级酒店平均入住率
  • 旅游消费数据:人均旅游支出变化

Python可视化

1. 数据准备

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go# 创建模拟数据集 - 北方城市交通客流数据
cities = ['北京','天津','石家庄','太原','沈阳','大连','青岛','济南','保定','邯郸']
data = {'城市': cities * 4,'年份': [2022]*10 + [2023]*10 + [2024]*10 + [2025]*10,'铁路客运量(万人次)': np.random.randint(5000,15000,40)*0.8**np.arange(0,4).repeat(10),'航空客运量(万人次)': np.random.randint(1000,5000,40)*0.85**np.arange(0,4).repeat(10),'高速公路流量(万车次)': np.random.randint(2000,8000,40)*1.1**np.arange(0,4).repeat(10),'旅游收入(亿元)': np.random.randint(50,300,40)*1.2**np.arange(0,4).repeat(10),'酒店均价(元)': np.random.randint(300,800,40)*0.9**np.arange(0,4).repeat(10),'类型': (['一线']*2 + ['三线']*8)*4
}df = pd.DataFrame(data)
df['铁路客运量变化率'] = df.groupby('城市')['铁路客运量(万人次)'].pct_change()*100
df['类型'] = df['城市'].map(lambda x: '一线' if x in ['北京','天津'] else '新一线' if x in ['青岛','沈阳'] else '三线')

输出:df1
在这里插入图片描述

2. 基础趋势可视化

多指标折线图对比

plt.figure(figsize=(14,8))
metrics = ['铁路客运量(万人次)','航空客运量(万人次)','高速公路流量(万车次)','旅游收入(亿元)']
for i,metric in enumerate(metrics):plt.subplot(2,2,i+1)sns.lineplot(data=df[df['类型']=='一线'], x='年份',y=metric, label='一线城市', marker='o')sns.lineplot(data=df[df['类型']=='三线'], x='年份',y=metric, label='三线城市', marker='s')plt.title(metric)plt.grid(True)
plt.tight_layout()
plt.suptitle('北方不同类型城市客流指标对比(2022-2025)', y=1.02)
plt.show()

图1:
在这里插入图片描述

3. 高级多维分析

雷达图对比城市类型差异

# 计算2025年各类型城市指标均值
radar_df = df[df['年份']==2025].groupby('类型')[metrics].mean().reset_index()fig = go.Figure()
for city_type in radar_df['类型']:fig.add_trace(go.Scatterpolar(r=radar_df[radar_df['类型']==city_type][metrics].values[0],theta=metrics,fill='toself',name=city_type))
fig.update_layout(polar=dict(radialaxis=dict(visible=True)),title='2025年北方不同类型城市多维度指标对比(雷达图)'
)
fig.show()

图2:
在这里插入图片描述

4. 地理空间可视化

城市客流变化地理热力图

# 添加城市经纬度
city_geo = {'北京': [116.4, 39.9], '天津': [117.2, 39.1], '石家庄': [114.5, 38.0],'太原': [112.5, 37.9], '沈阳': [123.4, 41.8], '大连': [121.6, 38.9],'青岛': [120.4, 36.1], '济南': [117.0, 36.7], '保定': [115.5, 38.9], '邯郸': [114.5, 36.6]
}
df['lat'] = df['城市'].map(lambda x: city_geo[x][1])
df['lon'] = df['城市'].map(lambda x: city_geo[x][0])fig = px.scatter_geo(df[df['年份']==2025], lat='lat', lon='lon',size='铁路客运量(万人次)',color='铁路客运量变化率',hover_name='城市',scope='asia',center={'lat': 38, 'lon': 115},title='2025年北方城市铁路客运量及变化率(气泡大小表示规模,颜色表示变化率)')
fig.update_geos(fitbounds="locations")
fig.show()

图3:
在这里插入图片描述

5. 节假日旅游数据专项分析

# 模拟节假日旅游数据
holiday_data = {'城市': ['北京','天津','石家庄','太原','沈阳','大连','青岛','济南','保定','邯郸'],'春节游客量(万人次)': [1200, 800, 450, 380, 550, 620, 780, 650, 320, 280],'春节旅游收入(亿元)': [150, 90, 35, 28, 45, 60, 85, 55, 25, 20],'平日游客量(万人次)': [800, 500, 200, 150, 250, 350, 450, 300, 120, 100],'类型': ['一线','一线','三线','三线','新一线','新一线','新一线','三线','三线','三线']
}
holiday_df = pd.DataFrame(holiday_data)
holiday_df['春节游客增幅'] = (holiday_df['春节游客量(万人次)'] - holiday_df['平日游客量(万人次)'])/holiday_df['平日游客量(万人次)']*100# 节假日游客增幅对比
plt.figure(figsize=(10,6))
sns.barplot(data=holiday_df, x='城市', y='春节游客增幅', hue='类型', palette='viridis')
plt.title('2025年春节各城市游客量较平日增幅对比')
plt.xticks(rotation=45)
plt.ylabel('增幅(%)')
plt.axhline(y=0, color='black', linestyle='--')
plt.show()

图4:
在这里插入图片描述

6. 交互式综合仪表盘

from ipywidgets import interact, Dropdown# 创建交互式选择器
@interact(指标=Dropdown(options=metrics, description='选择指标:'))
def plot_city_trend(指标):fig = px.line(df, x='年份', y=指标, color='城市', line_group='城市', hover_name='城市',title=f'北方各城市{指标}变化趋势(2022-2025)',facet_col='类型', category_orders={'类型': ['一线','新一线','三线']})fig.update_layout(height=500)fig.show()

图5:
在这里插入图片描述

结论

通过多维度指标分析可见:

  1. 北方一线城市如北京、天津在铁路、航空等长途交通方式上呈现客流下降趋势
  2. 三线城市在高速公路流量、旅游收入等指标上增长明显
  3. 节假日期间,三线城市游客增幅显著高于一线城市
http://www.xdnf.cn/news/5126.html

相关文章:

  • 广西某建筑用花岗岩矿自动化监测
  • 鸿蒙开发:dialog库做了一些优化
  • daytona开源代码架构分析
  • CMD常见命令
  • Oracle非归档模式遇到文件损坏怎么办?
  • 力扣:轮转数组
  • WD5030L CC/CV模式DCDC15A高效同步转换器消费电子工业控制汽车电子优选择
  • 命名视图~
  • NOIP1999提高组.拦截导弹
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据排序操作
  • React 第三十八节 Router 中useRoutes 的使用详解及注意事项
  • OpenHarmony SystemUI开发——修改状态栏和导航栏的高度
  • Mamba 状态空间模型 笔记 llm框架 一维卷积
  • Android设备序列号获取方式全解析
  • 使用pyTorch 自然语言处理(NLP)知识库创建
  • 青少年编程与数学 02-019 Rust 编程基础 03课题、变量与可变性
  • Java中医门诊系统源码 中医诊所系统源码
  • Jenkins Maven 带权限 搭建方案2025
  • 什么是移动设备管理(MDM)
  • el-menu 折叠后小箭头不会消失
  • AKS 支持 Kata Container容器沙盒 -预览阶段
  • 峰与谷系列题
  • 深入解析多线程与多进程:从理论到Python实践
  • 【LLaMA-Factory】使用LoRa微调训练DeepSeek-R1-Distill-Qwen-7B
  • 深入解析WPF中的3D图形编程:材质与光照
  • 关于fastjson与fastjson2中toJava操作的区别
  • SD二轮省集总结
  • Docker的基础操作
  • Nacos源码—7.Nacos升级gRPC分析四
  • GitHub 趋势日报 (2025年05月08日)