可视化大屏 | 全国热门旅游景点数据分析可视化(普版+Flask版)

科技   科技   2024-09-14 08:10   天津  

点击上方"蓝字",关注"Python当打之年"

后台回复"1",领取众多Python学习资料
大家好,我是欧K~

本期我们通过全国热门旅游景点数据分析一下全国比较热门的景点分布和国民出游情况,看看哪些地区景点比较受欢迎,希望对小伙伴们有所帮助,如有疑问或者需要改进的地方可以联系小编。


涉及到的内容:

Pandas — 数据处理
Pyecharts — 数据可视化
jieba — 分词
collections — 数据统计


1. 导入模块

1.1 导入模块 

import jieba
import pandas as pd
from collections import Counter
from pyecharts.charts import Line,Pie,Scatter,Bar,Map,Grid
from pyecharts.charts import WordCloud
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.globals import SymbolType
from pyecharts.commons.utils import JsCode

地图显示部分需要用到 pyecharts==1.9.0,已安装其他低版本的需要升级。

2. Pandas数据处理

2.1 读取数据 

df = pd.read_excel('旅游景点.xlsx')
df.head()

2.2 查看索引、数据类型和内存信息 

df.info()

一共有2443条景点数据,包含城市、名称、星级、评分、价格、销量、省/市/区、坐标、简介、是否免费、具体地址等信息。

2.3 按销量排序 

df.sort_values('销量', ascending=False).head()

可以看到上海迪士尼乐园、上海海昌海洋公园、北京故宫、陕西秦始皇陵博物馆、四川成都大熊猫繁育研究基地等景点相当热门。

3. Pyecharts数据可视化

3.1 销量前20热门景点数据 

sort_info = df.sort_values(by='销量', ascending=True)
b1 = (
    Bar()
    .add_xaxis(list(sort_info['名称'])[-20:])
    .add_yaxis('热门景点销量', sort_info['销量'].values.tolist()[-20:],itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(title='热门景点销量数据'),
        yaxis_opts=opts.AxisOpts(name='景点名称'),
        xaxis_opts=opts.AxisOpts(name='销量'),
        )
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))

)
# 将图形整体右移
g1 = (
    Grid()
        .add(b1, grid_opts=opts.GridOpts(pos_left='20%', pos_right='5%'))
)

3.2 假期出行数据全国地图分布 

df_tmp1 = df[['城市','销量']]
df_counts = df_tmp1.groupby('城市').sum()
m1 = (
        Map()
        .add('假期出行分布', [list(z) for z in zip(df_counts.index.values.tolist(), df_counts.values.tolist())], 'china')
        .set_global_opts(
            title_opts=opts.TitleOpts(title='假期出行数据地图分布'),
            visualmap_opts=opts.VisualMapOpts(max_=100000, is_piecewise=False,range_color=colors),
        )
    )

华东、华南、华中等地区属于国民出游热点地区,尤其是北京、上海、江苏、广东、四川、陕西等地区出行比较密集。

3.3 各省市4A-5A景区数量柱状图 

df_tmp2 = df[df['星级'].isin(['4A', '5A'])]
df_counts = df_tmp2.groupby('城市').count()['星级']
b2 = (
        Bar()
            .add_xaxis(df_counts.index.values.tolist())
            .add_yaxis('4A-5A景区数量', df_counts.values.tolist(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
            .set_global_opts(
            title_opts=opts.TitleOpts(title='各省市4A-5A景区数量'),
            datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_='inside')],
        )
    )

3.4 各省市4A-5A景区数量玫瑰图 

df0 = df_counts.copy()
df0.sort_values(ascending=False, inplace=True)
c1 = (
    Pie()
    .add('', [list(z) for z in zip(df0.index.values.tolist(), df0.values.tolist())],
         radius=['30%', '100%'],
         center=['50%', '60%'],
         rosetype='area',
         )
    .set_global_opts(title_opts=opts.TitleOpts(title='地区景点数量'),
                     legend_opts=opts.LegendOpts(is_show=False),
                     toolbox_opts=opts.ToolboxOpts())
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='inside', font_size=12,
                                               formatter='{b}: {c}', font_style='italic',
                                               font_weight='bold', font_family='Microsoft YaHei'
                                               ))
)

3.5 各省市4A-5A景区数量阴影散点图 

item_style = {'normal': {'shadowColor': '#000000',
                         'shadowBlur': 20,
                         'shadowOffsetX':5,
                         'shadowOffsetY':15
                         }
              }
s1 = (
        Scatter()
        .add_xaxis(df_counts.index.values.tolist())
        .add_yaxis('4A-5A景区数量', df_counts.values.tolist(),symbol_size=50,itemstyle_opts=item_style)
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(is_show=False,
                                              type_='size',
                                              range_size=[5,50]))
)

3.6 各省市4A-5A景区地图分布 

df_tmp3 = df[df['星级'].isin(['4A', '5A'])]
df_counts = df_tmp3.groupby('城市').count()['星级']
m2 = (
    Map()
    .add('4A-5A景区分布', [list(z) for z in zip(df_counts.index.values.tolist(), df_counts.values.tolist())], 'china')
    .set_global_opts(
    title_opts=opts.TitleOpts(title='地图数据分布'),
    visualmap_opts=opts.VisualMapOpts(max_=50, is_piecewise=True),
    )
)

江苏、安徽、河南、北京、湖北等地区4A、5A级景区数量比较多。
3.7 门票价格区间占比玫瑰图 

price_level = [0, 50, 100, 150, 200, 250, 300, 350, 400, 500]
label_level = ['0-50', '50-100', '100-150', '150-200', '200-250', '250-300', '300-350', '350-400', '400-500']
jzmj_cut = pd.cut(df['价格'], price_level, labels=label_level)
df_price = jzmj_cut.value_counts()
p1 = (
    Pie(init_opts=opts.InitOpts(
            width='800px', height='600px',
            )
       )
        .add(
        '',
        [list(z) for z in zip(df_price.index.tolist(), df_price.values.tolist())],
        radius=['20%', '60%'],
        center=['40%', '50%'],
        rosetype='radius',
        label_opts=opts.LabelOpts(is_show=True),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title='门票价格占比',pos_left='33%',pos_top="5%"),
                        legend_opts=opts.LegendOpts(type_='scroll', pos_left="80%",pos_top="25%",orient="vertical")
                        )
        .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c} ({d}%)'),position='outside')
    )

3.8 门票价格区间数量散点图 

s2 = (
        Scatter()
        .add_xaxis(df_price.index.tolist())
        .add_yaxis('门票价格区间', df_price.values.tolist(),symbol_size=50,itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
        .set_global_opts(
            yaxis_opts=opts.AxisOpts(name='数量'),
            xaxis_opts=opts.AxisOpts(name='价格区间(元)'))
        .set_global_opts(visualmap_opts=opts.VisualMapOpts(is_show=False,
                                              # 设置通过图形大小来表现数据
                                              type_='size',
                                              # 图形大小映射范围
                                              range_size=[5,50]))
)

门票价格100以内居多,大概占比70%,还是比较实惠的,而且一般景区还存在学生优惠等。
3.9 景点简介词云 

w2 = (
    WordCloud()
    .add(
        "",
        ac.most_common(200),
        word_size_range=[5, 80],
        textstyle_opts=opts.TextStyleOpts(font_family="cursive"),
        mask_image='1.jpg'
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="自定义样式词云图"),
    )
)


4. 总结

  • 华东、华南、华中等地区属于国民出游热点地区,尤其是北京、上海、江苏、广东、四川、陕西等地区出行比较密集。
  • 江苏、安徽、河南、北京、湖北等地区4A、5A级景区数量比较多。
  • 门票价格100以内居多,大概占比70%,还是比较实惠的。

5. 可视化大屏(普版)


6. 可视化大屏(flask版)

👉 公众号后台回复【可视化项目源码】获取可视化代码+数据

END
以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

 往期推荐 

源码下载 | Python可视化系列文章资源(源码+数据)

爬虫 | Python爬取某平台杭州二手房数据

爬虫 | Python搞定软科中国大学排名

爬虫 | Python爬取胡润百富榜数据

爬虫 | Python爬取微博实时热搜榜信息

爬虫 | Python爬取B站榜排行榜信息

可视化 | Flask+Mysql+Echarts 豆瓣电影Top250数据分析系统

Pandas+Pyecharts | 暑期档电影票房数据分析可视化

Pandas+Pyecharts | 平均预期寿命数据可视化

Pandas+Pyecharts | 2024年巴黎奥运会奖牌数据分析可视化

Pandas+Pyecharts | 杭州二手房数据分析可视化

Pandas+Pyecharts | 当当网畅销图书榜单数据分析可视化

Pandas+Pyecharts | 海南旅游攻略数据分析可视化

Pandas+Pyecharts | 全国海底捞门店数据分析可视化

Pandas+Pyecharts | 京东某商品销量数据分析可视化

Pandas+Pyecharts | 全国星巴克门店数据分析可视化

Pandas+Pyecharts | 第七次人口普查数据分析可视化

Pandas+Pyecharts | 快手APP全国大学生用户数据分析可视化

Pandas+Pyecharts | 奥迪汽车销量数据分析可视化

Pandas+Pyecharts | 剧荒了?用Python找找最近的热播好剧!

Pandas+Pyecharts | 2023年胡润百富榜数据分析可视化

Pandas+Pyecharts | 2023软科中国大学排名分析可视化

Pandas+Pyecharts | 成都大运会奖牌数据分析可视化

Pandas+Pyecharts | 电子产品销售数据分析可视化+用户RFM画像

Pandas+Pyecharts | 北京近五年历史天气数据可视化

Pandas+Pyecharts | 中国高校及专业数据分析可视化

Pandas+Pyecharts | 新冠疫情数据动态时序可视化

Pandas+Pyecharts | 全国吃穿住行消费排行榜,最‘抠门’的地区居然是北京!!!

Pandas+Pyecharts | 2022世界500强数据分析可视化

Pandas+Pyecharts | 上海市餐饮数据分析可视化

Pandas+Pyecharts | 山东省高考考生数据分析可视化

Pandas+Pyecharts | 20000+天猫订单数据可视化

Pandas+Pyecharts | 40000+汽车之家数据分析可视化

Pandas+Pyecharts | 广州市已成交房源信息数据可视化

Pandas+Pyecharts | 某直聘平台招聘信息数据可视化

可视化 | 再分享一套Flask+Pyecharts可视化模板二

可视化 | 分享一套Flask+Pyecharts可视化模板

可视化 | Python直观展示中国代表团冬奥会荣耀时刻

用Python分析了3W+《独行月球》影评数据,看看观众们怎么说~

Matplotlib | 世界足球俱乐部排名可视化

40000+条考研信息数据可视化(学校、专业分数分布)

【在看】的您又变好看了呢

Python当打之年
当打之年,专注于各领域Python技术,量的积累,质的飞跃。后台回复:【可视化项目源码】可获取可视化系列文章源码和数据
 最新文章