
文旅数据分析与可视化在智慧旅游建设中具有广泛应用比如游客画像分析、景点热度评估、智能行程规划、旅游资源优化配置等。文旅数据属于典型的非结构化与结构化混合数据需要使用专门的数据处理工具包进行读取、清洗及分析。本项目使用Python的Pandas库进行数据处理利用Plotly实现交互式可视化使用Streamlit框架构建数据应用。对于文旅数据分析通常有两种处理方法一种是对结构化数据如景点评分、价格等进行统计分析利用可视化图表展示数据规律另一种是利用大语言模型技术对非结构化文本如攻略、评论进行智能分析和问答。本项目将介绍这两种处理方法。下面将从案例背景、案例目标及实现思路、数据获取、指标计算、模型构建与实现、界面设计与开发、AI使用说明等方面进行详细介绍。1 案例实现部分案例背景文旅数据是广泛存在的一类数据文旅数据分析在各个领域均有丰富的应用案例。在智慧旅游建设中文旅数据中存在着各种景点信息、游客评价、旅行攻略、美食推荐等多源异构数据其动态整合与智能分析尤为重要。一般地这些大多通过人工查阅和经验判断来进行分析存在一定的主观性和效率低下的问题。广西作为文旅资源大省拥有丰富的自然景观如漓江、龙脊梯田、民族文化如侗族程阳八寨和历史遗迹资源。然而当前文旅数据多处于分散、非结构化的状态缺乏系统化的整合与分析工具制约了智慧旅游的发展。本项目参考无锡文旅数据集的构建思路以广西文旅数据为研究对象构建一个集数据加载、分析、可视化和智能推荐于一体的文旅数据分析系统。通过整合景点信息、旅行攻略、特色美食及图片等多源数据利用Streamlit框架实现交互式数据应用为用户提供直观的文旅数据洞察和智能旅行规划服务。本案例将文旅数据分为四类景点数据包含名称、城市、评分、价格、开放时间、描述等字段、攻略数据包含标题、作者、内容等字段、美食数据包含名称、类别、描述、地区等字段和图片数据景点相关图片。通过对四类数据的整合分析构建基于文旅数据的智能分析与可视化系统。案例目标及实现思路本案例的主要目标包括1. 掌握使用Pandas读取和处理结构化文旅数据的方法2. 掌握使用PIL包读取图像并进行简单处理的方法3. 掌握使用Streamlit构建交互式数据应用的方法4. 掌握文旅数据统计分析及可视化的基本流程基本实现思路如图1-1所示图1-1 系统实现思路流程图数据获取与探索数据来源本项目数据主要来源于以下渠道无锡文旅数据集参考格式整合了小红书热点攻略、景点信息、导游词及特色美食文档示例数据系统内置示例数据作为备选方便用户快速体验数据结构设计景点数据下面演示读取和解析景点数据文件的示例代码图1-2 示例代码代码运行效果如图所示图1-3 代码运行效果攻略数据下面是攻略数据的代码及运行效果图1-3 攻略数据示例代码图1-4 代码运行效果美食数据下面是美食数据的示例代码及运行效果图1-5 美食数据示例代码图1-6 代码运行效果数据加载实现项目使用st.cache_data装饰器实现数据缓存避免重复加载提升性能图1-7 数据加载示例代码指标计算与特征构造城市分布统计按城市统计景点数量计算各城市的景点占比def analyze_attractions(df):分析景点数据city_counts df[city].value_counts().reset_index()city_counts.columns [city, count]avg_rating_by_city df.groupby(city)[rating].mean().reset_index()avg_rating_by_city.columns [city, avg_rating]return city_counts, avg_rating_by_city价格特征提取从价格字符串中提取数值用于价格-评分关系分析def extract_price(price_str):if isinstance(price_str, str):numbers re.findall(r\d, price_str)if numbers:return int(numbers[0])return 0df[price_num] df[price].apply(extract_price)df_clean df[df[price_num] 0]if not df_clean.empty:fig3 px.scatter(df_clean,xprice_num,yrating,textname,title景点价格与评分关系,labels{price_num: 价格(元), rating: 评分},colorcity,hover_data[description])fig3.update_traces(textpositiontop center)st.plotly_chart(fig3, use_container_widthTrue)图1-8评分统计分析计算景点评分的均值、中位数、分布等统计量df pd.DataFrame(data[attractions])rating_stats {均值: df[rating].mean(),中位数: df[rating].median(),标准差: df[rating].std(),最小值: df[rating].min(),最大值: df[rating].max()}模型构建与实现统计分析模型按城市对景点数据进行分组统计city_stats df.groupby(city).agg({name: count,rating: [mean, std, min, max]}).round(2)总结本项目构建了一套完整的文旅数据分析与可视化系统实现了以下核心功能多源数据整合融合景点、攻略、美食、图片四类数据统计分析描述性统计、分组聚合、相关性分析智能推荐基于用户偏好提供个性化景点推荐交互式可视化7个功能模块覆盖数据概览、深度分析、推荐等场景系统采用模块化设计各功能独立可扩展为文旅数据分析提供了可复用的技术框架。2 界面实现部分2.1 系统需求分析在1.11.6节中详细介绍了文旅数据分析的基本知识包括文旅数据读取、数据处理、统计分析、特征提取、图像识别等如何将这些基础知识通过可视化页面的形式通俗易懂地展示给用户呢这里我们给出文旅数据分析系统需求列表如表2-1所示模块/说明需求说明数据概览展示景点、攻略、美食、图片总数统计卡片展示景点数据预览表格展示热门景点排行柱状图。景点分析支持按城市筛选景点展示景点城市分布饼图展示各城市平均评分柱状图展示评分分布直方图支持按名称搜索景点。景点推荐支持设置预算范围经济型、舒适型、豪华型支持选择偏好城市支持设置最低评分按评分降序展示推荐结果。攻略推荐展示旅行攻略标题、作者和详细内容支持展开/收起。美食探索支持按类别和地区筛选美食展示美食类别分布饼图展示各地区美食数量柱状图支持按名称搜索美食。图库展示支持搜索图片文件名支持设置每行显示列数2/3/4列支持分页浏览每页9张展示图片文件名和文件大小。数据分析看板展示城市景点数量与评分关系散点图展示各类数据统计柱状图展示景点价格与评分关系散点图。其他要求基于Python开发界面前端采用Streamlit开发系统中展示的图像、中文显示要求完整界面要求美观使用自定义CSS样式。表2-12.2 产品设计2.2.1 信息架构图2-12.2.2 导航设计采用左侧固定侧边栏导航包含系统Logo与名称6个功能入口Radio选择数据统计摘要系统信息图2-22.2.3 交互设计数据筛选下拉菜单、滑块、文本输入数据展示表格、图表、卡片、图片网格反馈机制加载状态、空状态提示、错误提示2.3 界面设计与开发2.3.1 设置页面配置导入Streamlit和相关依赖包之后首先是配置页面属性通过st.set_page_config()函数来实现。示例代码如下图2-3page_title浏览器标签页上显示的标题layoutwide将页面设置为宽屏模式使内容横向填充更多空间适合放置图表。st.markdown()配合自定义CSS实现美化标题。2.3.2 侧边栏的设置与功能实现Streamlit使用st.sidebar对象创建左侧边栏所有以st.sidebar.开头的组件都会被放入其中。本案例的侧边栏用于功能导航和数据统计。图2-4通过st.radio组件创建功能导航菜单用户点击不同选项切换页面。st.metric组件在侧边栏中显示数据统计卡片直观展示各类数据的数量。2.3.4 数据概览页面实现数据概览页面是系统的首页主要展示数据统计卡片和数据预览。部分代码截图如下。图2-5执行结果如图2-6所示。图2-62.3.4 图库展示页面实现图库展示页面支持图片搜索、分页浏览等功能.部分代码截图如图2-7所示。图2-7执行结果如图2-8所示。图2-82.4 界面实现总结本项目采用Streamlit框架构建了完整的文旅数据分析与可视化系统实现了以下界面功能数据概览统计卡片展示数据总量表格预览景点数据柱状图展示热门景点排行景点分析城市筛选、城市分布饼图、各城市平均评分柱状图、评分分布直方图景点推荐预算、城市、最低评分三要素筛选按评分排序展示推荐结果攻略推荐展开式攻略卡片展示标题、作者和详细内容美食探索类别和地区双维度筛选类别分布饼图、地区分布柱状图图库展示图片搜索、每行列数设置、分页浏览数据分析看板城市景点数量与评分关系散点图、数据质量报告、价格与评分关系散点图3 AI使用说明本项目在开发过程中合理使用AI辅助工具包括DeepSeek等遵循“辅助而非替代”的原则所有AI生成内容均经过人工审核和修改。阶段一图片加载问题修复问题描述 图库展示页面出现“无法加载图片”错误所有图片显示为红色错误提示。AI解决方案 提供了三种图片加载方法PIL、OpenCV、二进制读取并实现了多级降级策略。迭代过程1. 初版仅使用PIL加载 → 部分图片失败2. 第二版增加OpenCV备选 → 仍存在兼容性问题3. 第三版使用st.image直接传入路径 → 成功率提升4. 终版多方法尝试 详细错误提示 → 图片稳定显示图3-1阶段二功能扩展与优化用户需求增加景点推荐功能优化数据展示效果添加更多分析维度AI辅助生成推荐系统函数框架提供图表优化建议协助代码重构图3-23.3 AI使用规范总结使用原则辅助不替代AI辅助代码生成和问题诊断核心逻辑由人工设计审核必严格所有AI生成代码经过逐行审查和测试数据不外传项目数据本地存储不发送至云端AI过程可追溯保留AI对话记录和修改迭代过程总结本项目介绍了基于文旅数据的分析方法与可视化系统。在数据分析方面我们介绍了文旅数据的读取、处理、分析方法包括景点数据的结构化解析、统计分析及可视化方法。在界面实现方面我们基于Streamlit框架完成了数据概览、景点分析、景点推荐、攻略推荐、美食探索、图库展示、数据分析看板等7个功能模块的开发实现了从数据加载、分析到可视化展示的完整流程。系统采用模块化设计各功能独立可扩展为文旅数据分析提供了可复用的技术框架。用户可通过左侧边栏切换不同功能模块直观地探索文旅数据的内在规律为旅行规划、资源优化等场景提供数据支撑。AI游广西