当前位置:   article > 正文

2023年最新5A景区有多少个?Python可视化告诉你_景点的星级占比可视化

景点的星级占比可视化

2023年最新5A景区有多少个?Python可视化告诉你

五一小长假来了,很多人想抓住小长假的机会去旅游。

5A景区是大多数人的首选,全国最新有多少个5A景区呢,应该还有很多人不知道。本文用Python进行可视化,告诉你答案。

各年5A景区数量

在这里插入图片描述

瀑布图的方式展示各年的5A景区数量,截止2023年5月,全国共有319个5A景区。实现代码如下。

瀑布图介绍参考:循序渐进,学会用pyecharts绘制瀑布图。

from pyecharts.charts import Geo, Map, Bar
from pyecharts import options as opts
from pyecharts.globals import GeoType, ChartType
import pandas as pd
import numpy as np

def scenery_num_by_year():
    """5A景区数按年增长情况"""
    df = pd.read_excel('scenery_info.xlsx')
    s = df['年份'].value_counts().sort_index()
    bar = Bar(init_opts=opts.InitOpts(width='800px', height='500px'))
    bar.add_xaxis(
        s.index.to_list()
    ).add_yaxis(
        '', y_axis=[0, 66, 76, 119, 145, 171, 183, 212, 227, 249, 258, 280, 302, 306], category_gap=1,
        stack="5A景区总数", itemstyle_opts=opts.ItemStyleOpts(color="rgb(240,240,240)")
    ).add_yaxis(
        '新增数量', y_axis=s.to_list(), stack="5A景区总数", category_gap=1
    ).set_global_opts(
        title_opts=opts.TitleOpts(
            title='各年5A景区数量变化', pos_left='300', pos_top='15',
            title_textstyle_opts=opts.TextStyleOpts(color='#1A56C8', font_size=16)
        ), xaxis_opts=opts.AxisOpts(
            split_number=6, axislabel_opts=opts.LabelOpts(font_size=12, color='#1A56C8')
        ), yaxis_opts=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(font_size=12, color='#1A56C8', margin=12, font_weight='bolder'),
        ), legend_opts=opts.LegendOpts(is_show=False)
    ).set_series_opts(
        yaxis_opts=opts.AxisOpts(type_="value"),
    ).render('5a_scenery_num_by_year.html')
  • 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
  • 29
  • 30
各省5A景区数量排名

在这里插入图片描述

江苏省共有25个5A景区,一骑绝尘。实现代码如下。

def scenery_num_by_province():
    """各省5A景区数排名"""
    df = pd.read_excel('scenery_info.xlsx')
    s = df['所属地区'].value_counts(ascending=True)
    bar = Bar(init_opts=opts.InitOpts(width='800px', height='1000px', bg_color='#C8C8C8'))
    bar.add_xaxis(
        s.index.to_list()
    ).add_yaxis(
        '', s.to_list(), category_gap=5
    ).reversal_axis().set_global_opts(
        title_opts=opts.TitleOpts(
            title='各省5A景区数排名', pos_left='280', pos_top='15',
            title_textstyle_opts=opts.TextStyleOpts(color='#1A56C8', font_size=16)
        ), xaxis_opts=opts.AxisOpts(
            max_=30, split_number=6, is_show=False,
        ), yaxis_opts=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(font_size=12, color='#1A56C8', margin=12, font_weight='bolder'),
            splitline_opts=opts.SplitLineOpts(is_show=False)
        ), legend_opts=opts.LegendOpts(is_show=False)
    ).set_series_opts(
        label_opts=opts.LabelOpts(
            font_size=14, font_weight='bolder', font_family='italic', color='#7030A0',
            position='right', distance=10, vertical_align='middle'
        )
    ).set_colors('#FF9366').render('5a_scenery_num_by_province.html')


def province_name_paser(name):
    province_name = ["北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省",
                     "黑龙江省", "上海市", "江苏省", "浙江省", "安徽省", "福建省", "江西省", "山东省",
                     "河南省", "湖北省", "湖南省", "广东省", "广西壮族自治区", "海南省", "重庆市",
                     "四川省", "贵州省", "云南省", "西藏自治区", "陕西省", "甘肃省", "青海省",
                     "宁夏回族自治区", "新疆维吾尔自治区", "台湾省", "香港特别行政区", "澳门特别行政区"]
    for p in province_name:
        if name in p:
            return p
  • 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
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
各省5A景区分布情况

在这里插入图片描述

上图可视化了各省的5A景区分布情况,沿海地区、长江黄河流域、平原区域5A景区更多。实现代码如下。

def scenery_by_province():
    """各省5A景区数量分布"""
    map = Map(init_opts=opts.InitOpts(bg_color='black', width='1300px', height='700px'))
    df = pd.read_excel('scenery_info.xlsx')
    df['所属地区'] = df['所属地区'].apply(lambda x: province_name_paser(x))
    s = df['所属地区'].value_counts()
    data_pair = [[province, int(s[province])] for province in s.index]
    # print(data_pair)
    map.add(
        '', data_pair=data_pair, maptype="china", is_map_symbol_show=False
    ).set_global_opts(
        title_opts=opts.TitleOpts(
            title='各省5A景区数量分布', pos_left='550', pos_top='50',
            title_textstyle_opts=opts.TextStyleOpts(color='white', font_size=16)
        ), visualmap_opts=opts.VisualMapOpts(
            max_=27, is_piecewise=True, pos_left='350', pos_bottom='100', split_number=9,
            textstyle_opts=opts.TextStyleOpts(color='white', font_size=10)
        ), legend_opts=opts.LegendOpts(is_show=False)
    ).set_series_opts(
        label_opts=opts.LabelOpts(font_size=8, font_weight='bolder', font_family='monospace')
    ).render("5a_scenery_by_province.html")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
各省5A景区位置标注

在这里插入图片描述

把所有5A景区的位置标注出来,可以更方便查看景区的位置和分布情况。实现代码如下。

def scenery_location_mark():
    """5A景区位置标注"""
    geo = Geo(init_opts=opts.InitOpts(bg_color='black', width='1600px', height='900px'))
    df = pd.read_excel('scenery_info.xlsx')
    for row_index, row_data in df.iterrows():
        geo.add_coordinate(row_data['景区名称'], row_data['经度'], row_data['纬度'])
    data_pair = [(name, 1) for name in df['景区名称']]
    # print(data_pair)
    geo.add_schema(
        maptype='china', is_roam=True,
        itemstyle_opts=opts.ItemStyleOpts(color='#323c48', border_color='#408080')
    ).add(
        '', data_pair=data_pair, type_=GeoType.SCATTER, symbol='pin', symbol_size=16, color='#CC3300'
    ).set_series_opts(
        label_opts=opts.LabelOpts(is_show=False)
    ).set_global_opts(
        title_opts=opts.TitleOpts(
            title='全国5A景区位置标注图', pos_left='720', pos_top='50',
            title_textstyle_opts=opts.TextStyleOpts(color='#1A56C8', font_size=18)
        ), legend_opts=opts.LegendOpts(is_show=False)
    ).render('5a_scenery_location_mark.html')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
2023年最新5A景区速查表

在这里插入图片描述

如果你需要excel表格的数据和完整的可视化代码,请WX私信联系我获取。

数据来源:
[1] 5A景区信息来源于中国文旅部官网。
[2] 5A景区的经纬度来源于百度地图。


相关阅读:

循序渐进,学会用pyecharts绘制瀑布图

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