当前位置:   article > 正文

数据分析可视化- 十三朝古都西安_古代中国可视化案例

古代中国可视化案例

十三朝古都西安

这是全国旅游攻略的第四篇,前面三篇分别是:

地理位置从东南沿海,走到中部,然后到达西南,今天来到了历史文化浓厚的西北城市,历史曾至少有13个朝代在此建都:西安,自己没有去过,只是曾经坐火车路过一次,也很期待西安到底有哪些好吃的美食和好玩的地方

整体效果

先看看西安不同美食店铺数量

西安名称

以下内容知识来自维基百科,纯科普而已,讲述的是西安历史名称变化,学习下历史知识:

  • “西安城”:丰邑(殷商)-镐京(西周)-长安(西汉)-常安(新莽)-长安(东汉)-长安(曹魏)-长安(西晋)-长安(前秦)-长安(后秦)-长安(北周)-大兴(隋)-长安(唐)-大安(后梁)-长安(后唐)-永兴(宋)-奉元(元)-西安(明)-西安(清)-西安(中华民国)-西安(中华人民共和国)
  • “西安”:宗周(周)-内史(秦)-京兆(汉)-京兆(新)-京兆(南北朝)-京兆(隋)-京兆(唐)-大安(后梁)-京兆(后唐)-京兆(宋)-奉元(元)-西安(明)-西安(清)-西安(中华民国)-西安(中华人民共和国)

数据来源

数据来自网上的某公开网站,通过爬虫方式获取,具体过程参考:

  • 西安景点参考厦门的文章
  • 西安美食参考长沙的文章

涉及到的主要爬虫知识点:

  1. requests发送获取网页数据
  2. 基于正则表达式的数据解析
  3. 基于csv包的数据保存

⚠️:以后会专门写一篇文章讲解Python中如何基于re模块通过正则解析数据

西安景点

总共8个字段信息:中文名、英文名、攻略数、评论数、位置、排名、驴友占比、简介

西安美食

6个字段信息:中文名、得分、均价、地址、推荐菜、评价

导入库

import pandas as pd
import re
import csv
import json
import requests
import random

# 显示所有列
# 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, Scatter, Pie, Line, HeatMap, Funnel, WordCloud, Grid, Page  
from pyecharts.commons.utils import JsCode   
from pyecharts.globals import ThemeType,SymbolType

import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots  # 子图
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

西安景点

首先看下整体的数据,显示有1864个景点:

地区景点个数

西安景点的个数主要是分布在:西安市区、周至、蓝田、临潼、高陵

location = df["location"].value_counts().reset_index().rename(columns={"index":"location","location":"number"})

c = (
    Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))
    .add("西安景点个数",[list(z) for z in zip(location["location"].tolist(),location["number"].tolist())])
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)

c.render_notebook()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

景点评论之王

西安有些景点的相关评论非常之多,看下哪些景点的评论靠前?

df = pd.read_csv("西安景点.csv")
comment_top10 = df.sort_values("comment",ascending=False)[:10]

# 作图
fig = px.bar(comment_top10,x="cn_title",y="comment",color="comment",text="comment")
fig.update_traces(textposition="outside")
fig.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以看到评论最火的是:秦始皇帝陵博物院(兵马俑),高达20339条评论,其次是秦始皇陵,16050条。的确是西安的热门景点。

攻略数之王

再看看景点攻略数的情况:

# pyecharts实现

x_data = strategy_top10["cn_title"].tolist()
y_data = strategy_top10["strategy"].tolist()

c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(x_data)
    .add_yaxis("西安景点攻略数前10名",y_data)
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-20)),  # 设置旋转角度
    )
)

c.render_notebook()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

必玩景点

提取攻略数和评论都大于1000的景点:

comment_strategy = df[(df["comment"] >= 1000) & (df["strategy"] >= 100)]

fig = px.scatter(comment_strategy,
           x="comment",
           y="strategy",
           color="comment",
           size="strategy",
           text="cn_title"
          )

# ['top left', 'top center', 'top right', 'middle left',
# 'middle center', 'middle right', 'bottom left', 'bottom center', 'bottom right']

fig.update_traces(textposition="top center")

fig.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

从图中显示结果来看,有几个必去的景点:

  • 秦始皇帝陵博物院(兵马俑)
  • 回民街
  • 秦始皇陵
  • 华清宫
  • 陕西历史博物馆
  • 西安城墙
  • 大雁塔
  • 大唐芙蓉园
游客心中的排名
# 西安市区景点排名

ranking_xian = df[(df["location"] == "西安") & (df["ranking"] != 0)].sort_values("ranking",ascending=True)[1:][:20]
ranking_xian
  • 1
  • 2
  • 3
  • 4

可以看到很多排名靠前的景点的确评论数和攻略数也很多,比如:

  1. 秦始皇帝陵博物院(兵马俑)
  2. 回民街
  3. 圭峰山(这个景点还是很意外,可能是西安比较出名的山)
  4. 大唐芙蓉园等
西安宫殿

西安的宫殿应该是很多的,我们看看获取的数据中到底有多少个宫殿相关的景点:

我们看下前10个宫殿的景区:华清宫、大明宫国家遗址公园、大明宫遗址博物馆、兴庆宫公园、阿房宫遗址

秦始皇很伟大

通过上面的分析我们发现:**秦始皇帝陵博物馆(兵马俑)**在西安是一个非常出名的景点,那么我们看看和秦始皇相关的景点有哪些?

qinshihuang = df[df["cn_title"].str.contains("秦始皇")].reset_index(drop=True)
qinshihuang
  • 1
  • 2

上面的结果显示:总共是7个景点,其中秦始皇帝陵博物馆(兵马俑)秦始皇陵最为热门。

公园个数几何?

每个城市都有自己不同不样的公园,我们看看西安公园的个数:

park = df[df["cn_title"].str.contains("公园")].reset_index(drop=True)
print("公园个数:{}".format(len(park)))
# 结果
公园个数:133
  • 1
  • 2
  • 3
  • 4

结果显示是133个,真的不少!!!看下数据中的前5个公园:

大明宫国家遗址公园、太平国家森林公园、曲江海洋极地公园、曲江池遗址公园评论还是靠前的

驴友最爱景点

我们驴友占比较高的景点:

lvyou = df.sort_values("lvyou_number",ascending=False)[:10].reset_index(drop=True)

fig = px.bar(lvyou,x="cn_title",y="lvyou_number",text="lvyou_number")

fig.update_traces(textposition="outside")

fig.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

果然:回民街、秦始皇帝陵博物院(兵马俑)、大雁塔、陕西历史博物馆等是驴友心中不错的景点

总结

通过上面对景点数据的分析,我们发现西安下面几个景点很值得一去:

  1. 秦始皇帝陵博物院(兵马俑):兵马俑的确是西安景点的代表
  2. 回民街:西安各种美食、小吃聚集的场所
  3. 大雁塔:位于西安市雁塔区大慈恩寺内,现存最早、规模最大的唐代四方楼阁式砖塔,供奉着玄奘从天竺(印度)带回来的佛像、舍利梵文经典
  4. 大明宫国家遗址公园:始建于唐太宗贞观时期,西安宫殿建筑中最为辉煌壮丽的建筑群
  5. 华清宫:也称为华清池、骊山宫、骊宫、绣岭宫,唐代封建帝王游幸的别宫,唐玄宗和杨贵妃恩爱共浴的地方,也是西安事变的发生地。

西安美食

西安美食数据总共有1870条,看下前5条数据:

西安面食

北方人很喜欢吃面食,我们看看西安的面馆、面店:

df1 = pd.read_csv("西安美食.csv")
noodles = df1[df1["中文名"].str.contains("面")].reset_index(drop=True)
noodles
print("面馆总数:",len(noodles))

# 结果
面馆总数: 115
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

根据得分字段的降序观察前10名的店铺:

排名第一的小魏哥秘制果仁烤面筋,值得你去尝试下,地址也给你了。

biangbiang面

Biang字是这么写的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/408995
推荐阅读
相关标签