Python基础实战:快速实现泰山游客数量统计

45 阅读2分钟

泰山作为五岳之首,是国内外知名的旅游胜地,游客数量的变化能反映景区旅游热度与管理成效。

前面两篇文章分别使用numpy和pandas实现了泰山的游客数量统计,那么如果我们不依赖第三方库,该如何实现呢?这篇文章将使用python基础语法来实现。

一、核心目标

不依赖第三方库(numpy/pandas),用 Python 基础语法完成泰山景区游客数据的统计分析与简单可视化,快速呈现核心客流特征。

二、完整代码

import datetime
import matplotlib.pyplot as plt

# 中文显示设置
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 1. 构造2024年全年数据(日期+模拟游客数)
dates = []
visitors = []
start_date = datetime.date(2024, 1, 1)
# 生成全年日期并模拟游客数(1000-15000人次波动)
for i in range(366):  # 2024是闰年
    current_date = start_date + datetime.timedelta(days=i)
    dates.append(current_date)
    # 模拟:节假日高峰(每月1-3号、15-17号)+ 随机波动
    if i % 30 in [0, 1, 2, 14, 15, 16]:
        visitors.append(10000 + i % 5000)
    else:
        visitors.append(1000 + i % 14000)

# 2. 核心统计计算
total_visitors = sum(visitors)
avg_daily = total_visitors // len(visitors)
max_visitors = max(visitors)
max_date = dates[visitors.index(max_visitors)]
min_visitors = min(visitors)
min_date = dates[visitors.index(min_visitors)]

# 3. 月度客流统计(按月份分组求和)
monthly_stats = [0] * 12  # 索引0-11对应1-12月
for date, num in zip(dates, visitors):
    month = date.month - 1  # 转为列表索引
    monthly_stats[month] += num

# 4. 输出统计结果
print("=== 泰山景区2024年游客数量统计 ===")
print(f"总游客量:{total_visitors:,} 人次")
print(f"日均游客量:{avg_daily:,} 人次")
print(f"单日最高:{max_visitors:,} 人次(日期:{max_date.strftime('%Y-%m-%d')})")
print(f"单日最低:{min_visitors:,} 人次(日期:{min_date.strftime('%Y-%m-%d')})")
print(f"\n月度总客流TOP3:")
for i, (month, count) in enumerate(sorted(enumerate(monthly_stats, 1), key=lambda x: x[1], reverse=True)[:3]):
    print(f"第{i+1}名:{month}{count:,} 人次")

# 5. 月度客流趋势可视化
plt.figure(figsize=(10, 4))
plt.plot(range(1, 13), monthly_stats, marker='o', color='darkgreen', linewidth=2)
plt.title('泰山2024年月度总游客量趋势', fontsize=12)
plt.xlabel('月份')
plt.ylabel('总游客数(人次)')
plt.xticks(range(1, 13))
plt.grid(alpha=0.3)
plt.show()

三、代码说明

  1. 数据构造:用datetime生成 2024 年全年日期,通过简单逻辑模拟游客数量波动(节假日高峰 + 随机值)。
  2. 统计核心:仅用 Python 内置函数(sum/max/min)计算总客流、日均、极值,用列表分组实现月度统计,无冗余依赖。
  3. 可视化:保留核心趋势图,直观展示月度客流变化,代码简洁易运行。

四、运行结果

  • 控制台输出总客流、日均、单日极值及月度 TOP3,快速获取关键信息。
  • 生成月度趋势图,可清晰识别旺季(如 5 月、10 月)与淡季分布,为景区运营提供基础数据支持。