源码开放:基于Pyecharts可视化分析苏州旅游攻略
公众号:尤而小屋
作者:Peter
编辑:Peter
大家好,我是Peter~
全国旅游城市终于又更新啦!以前写过厦门、长沙、成都、西安、大连。今天带来的是:上有天堂,下有苏杭:苏州来了😄终于挤出时间把苏州的旅游景点和美食的攻略写完了。
很多年之前Peter去苏州旅游过一次,所以还是有些印象。到现在还记得当年去的几个景点:观前街、留园、苏州博物馆……
个人觉得苏州这个城市还是蛮不错的,真的是江南城市代表。到达苏州站,看到苏州护城河,河街相邻;走到城市中,房子低檐,粉墙黛瓦,老街园林到处可见;看到各种园林古迹,历史感比较厚重;听到当地人说话,温婉尔雅,轻声细语。
将来一定会找个时机再游苏州~
苏州
苏州是中国经济高度发达的地区,是江苏省的经济中心、工商业和物流中心城市,也是重要的金融、文化、艺术、教育和交通中心。下面这幅图来自维基百科,可以看到组成苏州的几个县级市和区。巩固下地理吧~
数据来源
本文中共有两份数据:苏州美食和苏州景点。数据是通过爬虫方式获取的,文末有数据分析源码获取方式。
郑重声明:本文的数据仅作为数据分析和可视化效果展示使用,未用作其他用途;若有转载,请注明出处~
数据效果
我们以苏州景点的数据分析作为展示。本文亮点是所有的图形使用的是可视化库:pyecharts,这是一个国产的可视化库
苏州景点
苏州景点的数据分析主要是从以下几个方面展开:
导入库
import pandas as pd
import re
# 显示所有列
# pd.set_option('display.max_columns', None)
# 显示所有行
# pd.set_option('display.max_rows', None)
# 设置value的显示长度为100,默认为50
# pd.set_option('max_colwidth',100)
# 绘图相关
import jieba
import matplotlib.pyplot as plt
from pyecharts.globals import CurrentConfig, OnlineHostType # 事先导入,防止不出图
from pyecharts import options as opts # 配置项
from pyecharts.charts import Bar, Pie, Line, Funnel, WordCloud, Grid, Page # 各个图形的类
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType,SymbolType
省略相关的数据导入和数据探索部分,重点是看看数据分析的结果。苏州景点数据有2000*8
景点分布
在这里展示的苏州各个地方的景点个数:
c = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK))
.add("", [list(z) for z in zip(df2["location"].tolist(), df2["number"].tolist())])
.set_global_opts(title_opts=opts.TitleOpts(title="苏州景点分布"),
legend_opts=opts.LegendOpts(pos_left="80%", orient="vertical"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.render_notebook()
攻略数前10名的景点
很多的景点都有游客写了攻略数,我们可以把攻略数作为一种参考:
景点评论数
驴友百分比
驴友百分比表示的是大致有多少的游客到过相同的景点:
园林城市
苏州是一个园林城市,我们从数据中看到:本次获取到的数据里面苏州有457个和“园”相关的景点。比较出名的还是:
拙政园 留园 网师园
古城街道
苏州也是一个历史感很厚重的城市,数据中显示有106条的街道:
山塘街 平江路历史街区 观前街
寺庙
数据中也显示苏州共有96个寺庙:其中最为出名的还是寒山寺
月落乌啼霜满天,江枫渔火对愁眠,姑苏城外寒山寺,夜半钟声到客船
景点词云图
我们获取到的数据景点的中文名和简介进行了词云图展示:
1、全部的词云展示
2、截取前50个高频词
通过两种词云图的展示,我们发现苏州的景点中:
公园是比较多的 各种馆,比如:博物馆、展览馆、艺术馆、美术馆等也很丰富 文化气息浓厚:文化、文物保护、建筑等
苏州美食
苏州美食数据有2000条,6个字段。
得分分布
得分这个字段的分布情况。得分为0.0表示没有得分
从上图中我们可以看到很多店是没有评分的。接下来,我们看看评分为5分的都是哪些店铺(取前10名)
牛排店 知名酒店 咖啡厅
消费均价
对字段“均价”的统计分析,分类的规则:
def price(x):
if x < 20:
return "很便宜"
if x < 50:
return "价格亲民"
if x < 100:
return "可以接受"
if x < 200:
return "人均消费较高"
else:
return "高档餐厅"
利用下面的代码进行饼图的绘制:
c = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK))
.add("", [list(z) for z in zip(df5["分类"].tolist(), df5["数量"].tolist())])
.set_global_opts(title_opts=opts.TitleOpts(title="苏州美食店铺均价数量占比分布",subtitle="备注:排除没有均价店铺"),
legend_opts=opts.LegendOpts(pos_left="80%", orient="vertical"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.render_notebook()
高消费餐厅
通过均价字段的降序,我们看看苏州的高消费地方都是哪里?
酒店
数据中显示苏州有酒店86家,其中知名的酒店:
苏州洲际酒店 金陵饭店花园酒店 苏州金鸡湖新罗酒店
面馆
总共117家面馆,如果你是个面食爱好者,这些地方你一定不要错过:
老东吴面馆(莫厘路店) 奥灶面 同得兴精品面馆(观前街店)
美食店统计
从面馆、烧烤、酒店、火锅串串等8个不同的方面进行美食店铺的统计:
美食词云
苏州的美食词云图主要是将数据的“推荐菜”这个字段进行词云图的展示,看看当地人爱好哪些美食。
1、全部词云图
2、前50个词语
从词云图中可以看到,苏州人的口味还是很清淡的。游客的推荐菜中:
牛肉为主要菜品 菜的做法:红烧(肉)、清蒸、烤 钟爱虾:虾、虾仁、河虾等 喜欢海鲜:尤其是鱼,还有鱿鱼、、三文鱼等
苏州属于太湖境内,肯定是不能错过大闸蟹。
总结
看完上面苏州旅游景点和美食的分析,如果你到苏州必去的地方:
园林:拙政园、留园 寺庙:寒山寺、重元寺 街道:山塘街、平江路历史街区、观前街 苏州博物馆
你必不能错过的美食:
苏州的牛肉(牛肉粉、牛肉酥等),可以品尝 虾蟹:太湖区域水产品多,比如虾仁、大闸蟹等 面食:馄饨、生煎你也不能错过。记得当时Peter吃过一家名为“乐惠”的小馄饨,挺赞的~还有苏式汤面也值得品尝
福利来咯:数据分析源码获取方式,关注尤而小屋,回复苏州即可获取以下资料,已经打包:
1、2:苏州景点和美食的数据分析全代码,在jupyter notebook中运行
3:Peter一直在使用的停用词表,也在不断补充
4、5:景点和美食的原始数据
推荐阅读
尤而小屋,一个温馨的小屋。小屋主人,一手代码谋求生存,一手掌勺享受生活,欢迎你的光临