Pyecharts 风景名胜区数据可视化分析

该博客使用Python的pandas库处理风景名胜区数据,计算了总面积和游客量的平均值,并用fillna填充缺失值。通过pyecharts库绘制了河北地区各景区的面积和游客量柱状图以及各景区游客量占比饼图,展示了河北旅游景点的分布和游客情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import pandas as pd
import numpy as np
# 使用read_csv()方法进行读取
scenery_file_path = open(r'风景名胜区.csv')
scenery_data = pd.read_csv(scenery_file_path)
scenery_data
省份名称总面积(平方公里)游客量(万人次)
0北京十三陵123.0493.9
1北京八达岭55.0737.5
2北京石花洞85.064.4
3天津盘山106.0228.3
4河北苍岩山63.054.0
...............
225新疆库木塔格沙漠1880.016.5
226新疆天山天池548.0185.7
227新疆赛里木湖1301.055.0
228新疆罗布人村寨134.060.1
229新疆博斯腾湖3550.082.0

230 rows × 4 columns

# 计算‘总面积(平方公里)’的平均数,并保留一位小数
area = float("{:.1f}".format(
scenery_data['总面积(平方公里)'].mean()))
# 计算‘游客量(万人次)’平均数,并保留一位小数
tourist = float("{:.1}".format(
scenery_data['游客量(万人次)'].mean()))
# 将上述计算的平均值,使用fillna()函数,字典映射的形式进行填充
values = {"总面积(平方公里)":area,"游客量(万人次)":tourist}
scenery_data = scenery_data.fillna(value=values)
scenery_data.head
     省份     名称   总面积(平方公里)  游客量(万人次)
0    北京     十三陵      123.0     493.9
1    北京     八达岭       55.0     737.5
2    北京     石花洞       85.0      64.4
3    天津      盘山      106.0     228.3
4    河北     苍岩山       63.0      54.0
..   ..     ...        ...       ...
225  新疆  库木塔格沙漠     1880.0      16.5
226  新疆    天山天池      548.0     185.7
227  新疆    赛里木湖     1301.0      55.0
228  新疆   罗布人村寨      134.0      60.1
229  新疆    博斯腾湖     3550.0      82.0

[230 rows x 4 columns]>
 # 通过groupby()函数按“省份”一列拆分scenery_data
data = scenery_data.groupby("省份")
# 显示“河北”分组的数据
hebei_scenery = dict([x for x in data])['河北']
hebei_scenery
省份名称总面积(平方公里)游客量(万人次)
4河北苍岩山63.054.0
5河北嶂石岩120.07.8
6河北西柏坡-天桂山256.0780.0
7河北秦皇岛北戴河366.0823.0
8河北响堂山41.010.0
9河北娲皇宫132.0365.1
10河北太行大峡谷20.09.8
11河北崆山白云洞161.086.0
12河北野三坡499.0275.0
13河北承德避暑山庄外八庙564.0135.0
from pyecharts import options as opts
from pyecharts.charts import Bar
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType
labels =['苍岩山', '嶂石岩',  '西柏坡-天桂山',  '秦皇岛北戴河','响堂山',
         '娲皇宫','太行大峡谷','崆山白云洞','野三坡','承德避暑山庄外八庙']
c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.ROMA))  #设置主题颜色
    .add_xaxis( labels) #x轴标签
    .add_yaxis("总面积", list(hebei_scenery['总面积(平方公里)'])) #y轴 总面积
    .add_yaxis("游客量", list(hebei_scenery['游客量(万人次)'])) #y轴 游客量
    #.set_colors(["white", "green"]) #设置条形的颜色
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=20)), #x轴的标签向x轴偏了20度
        title_opts=opts.TitleOpts(title="河北景点面积及游客数量", subtitle="单位:平方公里/万人次"),
    )
)
c.render_notebook()

在这里插入图片描述

import matplotlib.pyplot as plt
every_scenery = hebei_scenery['游客量(万人次)'].values
all_scenery = hebei_scenery['游客量(万人次)'].sum()
# 计算每个景点游客所占百分比  保留两位小数
percentage = (every_scenery/all_scenery)*100
np.set_printoptions(precision=2)
labels  = ['苍岩山', '嶂石岩', '西柏坡-天桂山', 
            '秦皇岛北戴河','响堂山','娲皇宫','太行大峡谷',
            '崆山白云洞','野三坡','承德避暑山庄外八庙']
from pyecharts import options as opts
from pyecharts.charts import Pie
c = (
    Pie() #饼图
    .add(   #添加数据
        "",
        [list(z) for z in zip(labels,percentage )],
        center=["45%", "50%"], #位置
    )
    .set_global_opts(
       title_opts=opts.TitleOpts(title="河北旅游景点占比饼图"), #主标题
        ## 'scroll':可滚动翻页的图例。当图例数量较多时可以使用。
        ## pos_left: 图例组件离容器左侧的距离。
        ## orient 图例列表的布局朝向。
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="84%", orient="vertical"), #图例配置项,
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%")) #数字项名称和百分比
)
c.render_notebook() #显示在jupyter notebook

在这里插入图片描述

数据集链接

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值