🧑 博主簡介:曾任某智慧城市類企業
算法總監
,目前在美國市場的物流公司從事高級算法工程師
一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN人工智能領域的優質創作者,提供AI相關的技術咨詢、項目開發和個性化解決方案等服務,如有需要請站內私信或者聯系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉絲群介紹:① 群內初中生、高中生、本科生、研究生、博士生遍布,可互相學習,交流困惑。② 熱榜top10的常客也在群里,也有數不清的萬粉大佬,可以交流寫作技巧,上榜經驗,漲粉秘籍。③ 群內也有職場精英,大廠大佬,可交流技術、面試、找工作的經驗。④ 進群免費贈送寫作秘籍一份,助你由寫作小白晉升為創作大佬。⑤ 進群贈送CSDN評論防封腳本,送真活躍粉絲,助你提升文章熱度。有興趣的加文末聯系方式,備注自己的CSDN昵稱,拉你進群,互相學習共同進步。
【數據可視化-76】從釋永信被查,探索少林寺客流量深度分析:Python + Pyecharts 炫酷大屏可視化(含完整數據和代碼)
- 一、引言
- 二、數據集介紹
- 三、環境準備
- 四、數據預處理
- 五、可視化分析
- 5.1 日客流量柱狀圖
- 5.2 周客流量柱狀圖
- 5.3 節假日與非節假日客流量對比
- 5.4 天氣對客流量的影響
- 5.5 特殊活動對客流量的影響
- 5.6 溫度與客流量的關系
- 5.7 月客流量趨勢
- 六、組合大屏
- 七、分析總結
一、引言
??少林寺作為中國著名的佛教圣地,每年吸引著大量的游客。近期,釋永信被調查的事件引發了廣泛關注。為了更好地理解少林寺的運營情況,我們對近一年的客流量數據進行了詳細分析。本文將使用 Python 和 Pyecharts 構建一個炫酷的黑色大屏,從多個維度展示客流量的變化趨勢和內在規律。
二、數據集介紹
??數據集包含以下字段:
日期
:日期星期
:星期幾(0-6,0 表示星期一)天氣
:天氣情況(如晴、多云、小雨等)最高溫度
:當日最高溫度(℃)最低溫度
:當日最低溫度(℃)節假日
:是否為節假日(0 表示非節假日,1 表示節假日)特殊活動
:是否有特殊活動(如無、武術表演等)客流量
:當日客流量(人)
三、環境準備
??在開始之前,請確保安裝了以下庫:
pip install pandas pyecharts
四、數據預處理
??我們首先讀取數據,并進行必要的預處理。
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType
from pyecharts.commons.utils import JsCode# 讀取數據
df = pd.read_csv("少林寺客流量.csv")# 將日期列轉換為日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取日期字符串
df['日期_str'] = df['日期'].dt.strftime('%m-%d')
五、可視化分析
??接下來,我們將從多個角度對數據進行可視化分析。
5.1 日客流量柱狀圖
??我們首先查看每天的客流量。
# 日客流量柱狀圖
bar_daily = (Line(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000")).add_xaxis(df1['日期'].tolist()).add_yaxis("客流量", df1['客流量'].tolist(), itemstyle_opts=opts.ItemStyleOpts(color="#00f2fe")).set_global_opts(title_opts=opts.TitleOpts(title="每日客流量", subtitle="單位:人"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(name="客流量"),visualmap_opts=opts.VisualMapOpts(is_show=True,pos_top="middle",pos_left="right",orient="vertical",min_=0,max_=df1['客流量'].max(),range_color=["#00fe33", "#4facfe", "#ff00ee"]))
)
5.2 周客流量柱狀圖
??接下來,我們查看每周的客流量。
# 周客流量柱狀圖
weekly_flow = df.groupby('星期')['客流量'].mean().reset_index()
weekly_flow['星期'] = weekly_flow['星期'].map({0: '周一', 1: '周二', 2: '周三', 3: '周四', 4: '周五', 5: '周六', 6: '周日'})bar_weekly = (Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000")).add_xaxis(weekly_flow['星期'].tolist()).add_yaxis("平均客流量", weekly_flow['客流量'].round(2).tolist(), itemstyle_opts=opts.ItemStyleOpts(color="#ffde93")).set_global_opts(title_opts=opts.TitleOpts(title="每周平均客流量", subtitle="單位:人"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(name="平均客流量"),visualmap_opts=opts.VisualMapOpts(is_show=True,pos_top="middle",pos_left="right",orient="vertical",min_=0,max_=weekly_flow['客流量'].max(),range_color=["#ffde93", "#ffc107", "#ff9800"]))
)
5.3 節假日與非節假日客流量對比
??我們再看看節假日和非節假日的客流量對比。
# 節假日與非節假日客流量對比
holiday_flow = df.groupby('節假日')['客流量'].mean().reset_index()bar_holiday = (Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000")).add_xaxis(holiday_flow['節假日'].map({0: '非節假日', 1: '節假日'}).tolist()).add_yaxis("平均客流量", holiday_flow['客流量'].round(2).tolist(), itemstyle_opts=opts.ItemStyleOpts(color="#ffde93")).set_global_opts(title_opts=opts.TitleOpts(title="節假日與非節假日客流量對比", subtitle="單位:人"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(name="平均客流量"),visualmap_opts=opts.VisualMapOpts(is_show=True,pos_top="middle",pos_left="right",orient="vertical",min_=0,max_=holiday_flow['客流量'].max(),range_color=["#ffde93", "#ffc107", "#ff9800"]))
)
5.4 天氣對客流量的影響
??我們再看看不同天氣情況下的客流量。
# 天氣對客流量的影響
weather_flow = df.groupby('天氣')['客流量'].mean().reset_index()
rose_weather = (Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000")).add("", [list(z) for z in zip(weather_flow["天氣"], weather_flow["客流量"])], radius=[30, 110], center=["50%", "50%"], rosetype="area").set_global_opts(title_opts=opts.TitleOpts(title="不同天氣下的客流量", subtitle="單位:人"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(name="平均客流量"),legend_opts=opts.LegendOpts(is_show=True,orient="vertical", pos_top="15%", pos_left="2%"),visualmap_opts=opts.VisualMapOpts(is_show=True,pos_top="middle",pos_left="right",orient="vertical",min_=0,max_=weather_flow['客流量'].max(),range_color=["#d0ff93", "#07f3ff", "#ff00d0"])).set_series_opts(label_opts=opts.LabelOpts(is_show=True))
)
5.5 特殊活動對客流量的影響
??我們再看看特殊活動對客流量的影響。
# 特殊活動對客流量的影響
activity_flow = df.groupby('特殊活動')['客流量'].mean().reset_index()bar_activity = (Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000")).add_xaxis(activity_flow['特殊活動'].tolist()).add_yaxis("平均客流量", activity_flow['客流量'].round(2).tolist(), itemstyle_opts=opts.ItemStyleOpts(color="#ffde93")).set_global_opts(title_opts=opts.TitleOpts(title="特殊活動對客流量的影響", subtitle="單位:人"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(name="平均客流量"),visualmap_opts=opts.VisualMapOpts(is_show=True,pos_top="middle",pos_left="right",orient="vertical",min_=0,max_=activity_flow['客流量'].max(),range_color=["#ff93ce", "#ff0755", "#ff0000"]))
)
5.6 溫度與客流量的關系
??我們再看看溫度對客流量的影響。
# 溫度與客流量的關系
scatter_temp = (Scatter(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000")).add_xaxis(range(min(df['最高溫度'].tolist()),max(df['最高溫度'].tolist()))
).add_yaxis("客流量", df['客流量'].tolist(), symbol_size=10).set_global_opts(title_opts=opts.TitleOpts(title="溫度與客流量的關系"),xaxis_opts=opts.AxisOpts(name="最高溫度 (℃)"),yaxis_opts=opts.AxisOpts(name="客流量"),visualmap_opts=opts.VisualMapOpts(type_="size",max_=df['客流量'].max(),min_=0,range_size=[5, 20],range_color=["#ff93ce", "#ff0755", "#ff0000"]))
)
5.7 月客流量趨勢
??我們再看看每月的客流量趨勢。
# 月客流量趨勢
df['月份'] = df['日期'].dt.month
monthly_flow = df.groupby('月份')['客流量'].mean().reset_index()line_monthly = (Line(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000")).add_xaxis(monthly_flow['月份'].tolist()).add_yaxis("平均客流量", monthly_flow['客流量'].round(2).tolist(), is_smooth=True, linestyle_opts=opts.LineStyleOpts(width=2, curve=0.3)).set_global_opts(title_opts=opts.TitleOpts(title="每月客流量趨勢", subtitle="單位:人"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(name="平均客流量"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),visualmap_opts=opts.VisualMapOpts(range_color=["#ff93ce", "#ff0755", "#ff0000"]))
)
六、組合大屏
??最后,我們將所有圖表組合成一個炫酷的大屏。
# 組合大屏
page = Page(layout=Page.DraggablePageLayout)
page.add(bar_daily, bar_weekly, bar_holiday, rose_weather, bar_activity, scatter_temp, line_monthly)
page.render("shaolin_temple_dashboard.html")
print("? 已生成 shaolin_temple_dashboard.html")
七、分析總結
??通過上述可視化分析,我們可以清晰地看到少林寺近一年的客流量變化規律:
- 節假日與非節假日:節假日的客流量明顯高于非節假日。
- 天氣影響:晴天的客流量最高,而暴雨等惡劣天氣的客流量較低。
- 特殊活動:有特殊活動時,客流量顯著增加。
- 溫度與降雨量:溫度適中且降雨量較少的天氣,客流量較高。
??這些分析結果為少林寺的運營提供了數據支持,有助于優化游客體驗和管理資源。
??希望這篇文章能幫助你更好地理解和分析少林寺的客流量數據。如果你有任何問題或建議,歡迎在評論區留言!🎉