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')
各省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
各省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")
各省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')
2023年最新5A景区速查表
如果你需要excel表格的数据和完整的可视化代码,请WX私信联系我获取。
数据来源:
[1] 5A景区信息来源于中国文旅部官网。
[2] 5A景区的经纬度来源于百度地图。
相关阅读:
循序渐进,学会用pyecharts绘制瀑布图
📢欢迎 点赞👍 收藏⭐ 评论📝 关注❤ 如有错误敬请指正!
☟ 学Python,点击下方名片关注我。☟