泰山作为五岳之首,是国内外知名的旅游胜地,游客数量的变化能反映景区旅游热度与管理成效。
前面两篇文章分别使用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()
三、代码说明
- 数据构造:用
datetime生成 2024 年全年日期,通过简单逻辑模拟游客数量波动(节假日高峰 + 随机值)。 - 统计核心:仅用 Python 内置函数(
sum/max/min)计算总客流、日均、极值,用列表分组实现月度统计,无冗余依赖。 - 可视化:保留核心趋势图,直观展示月度客流变化,代码简洁易运行。
四、运行结果
- 控制台输出总客流、日均、单日极值及月度 TOP3,快速获取关键信息。
- 生成月度趋势图,可清晰识别旺季(如 5 月、10 月)与淡季分布,为景区运营提供基础数据支持。