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

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

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

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

各年5A景区数量

2023年最新5A景区有多少个?Python可视化告诉你_第1张图片

用瀑布图的方式展示各年的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')

各省5A景区数量排名

2023年最新5A景区有多少个?Python可视化告诉你_第2张图片

江苏省共有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

各省5A景区分布情况

2023年最新5A景区有多少个?Python可视化告诉你_第3张图片

上图可视化了各省的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")

各省5A景区位置标注

2023年最新5A景区有多少个?Python可视化告诉你_第4张图片

把所有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')

2023年最新5A景区速查表

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

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

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


相关阅读:

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

欢迎 点赞 收藏⭐ 评论 关注 如有错误敬请指正!

☟ 学Python,点击下方名片关注我。☟

你可能感兴趣的:(数据采集/数据分析/数据挖掘,python,数据分析,python可视化,5A景区可视化,pyecharts可视化)