Python数据处理与可视化分析

您所在的位置:网站首页 河北的风景名胜区 Python数据处理与可视化分析

Python数据处理与可视化分析

2023-09-21 19:26| 来源: 网络整理| 查看: 265

可视化分析某年河北省旅游景点数据

4.1 数据的爬取

代码:

# 4.1 数据的爬取 import pandas as pd import numpy as np file_path=open(r'风景名胜区.csv') local_data=pd.read_csv(file_path) local_data

运行结果:

image-20211227231050224

首先使用pandas的read_csv()方法进行数据的读取,然后就能够看到相应的表格信息。

4.2河北省景点面积和旅客量位居前三的条形图显示 4.2.1数据预处理

代码:

# 4.2河北省景点面积和旅客量位居前三的条形图显示 area=float("{:.1f}".format(local_data['总面积(平方公里)'].mean())) # 计算游客数量的平均值 tour=float("{:.1f}".format(local_data['游客量(万人次)'].mean())) #使用字典映射的方式进行填充数据 dic={'总面积(平方公里)':area,"游客量(万人次)":tour} addata=local_data.fillna(value=dic) addata.head()

运行结果:

image-20211227231259590

使用mean()方法计算游客数量的平均值,然后再使用字典映射的方式进行填充数据,使用head()方法查看前面五行的数据;

字典映射:

dic={'总面积(平方公里)':area,"游客量(万人次)":tour} addata=local_data.fillna(value=dic)

我们可以清晰明了的看到五行相应的旅游信息。

4.2.2找出河北省的数据

代码:

data=addata.groupby("省份") # 显示河北地区的·数据 hebei=dict([x for x in data])['河北'] hebei

运行结果:

image-20211227231617123

首先对根据dataframe省份这一列进行分组,然后解析dict,单独将河北省的数据解析。

4.2.3 绘制直方图

代码:

# 需要我们绘制直方图 import matplotlib.pyplot as plt %matplotlib inline #为正常显示中文字体,添加的代码 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False # 显示的数据选取 area=hebei["总面积(平方公里)"].values tour=hebei["游客量(万人次)"].values # 设置图像的大小 plt.figure(figsize=(12,6)) x_num=range(0,len(area)) x_dis=[i + 0.3 for i in x_num] plt.bar(x_num,area,color='g',width=.3,label='总面积') plt.bar(x_dis,tour,color='r',width=.3,label='游客量') #增加x、y轴文字说明 plt.ylabel("单位:平方千米、万人次") plt.title("河北旅游景点面积以及游客数量") # 设置图例 plt.legend(loc="upper right") plt.xticks(range(0,10),['苍岩山','嶂石岩','西柏坡-天桂山','秦皇岛北戴河','响堂山','娲皇宫','太行大峡谷','崆山白云洞','野三坡','承德避暑山庄外八庙']) plt.show()

运行结果:image-20211227231707216

在这里我们使用matplotlib来绘制图形

绘制图形的步骤:初始化(导库、数据的选取)——pyplot.figure申请画布——绘制图形pyplot.bar——设置相关的标签、坐标轴、图例以及标题——展示或者导出保存

核心代码:

plt.bar(x_dis,tour,color='r',width=.3,label='游客量')

绘制柱状图。

4.3河北省旅客量的占比量的饼状图显示

代码:

# 4.3河北省旅客量的占比量的饼状图显示。 # 需要我们绘制直方图 import matplotlib.pyplot as plt %matplotlib inline #为正常显示中文字体,添加的代码 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False tournum=hebei["游客量(万人次)"].values all_tournum=hebei["游客量(万人次)"].sum() # 计算每个景点旅游游客占比,保留两位小数 perc=(tournum/all_tournum)*100 np.set_printoptions(precision=2) lables=['苍岩山','嶂石岩','西柏坡-天桂山','秦皇岛北戴河','响堂山','娲皇宫','太行大峡谷','崆山白云洞','野三坡','承德避暑山庄外八庙'] plt.axes(aspect=1) plt.pie(x=perc, labels=lables, # 设置饼图标签 colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色 shadow=True, labeldistance=1.2, # explode=(0, 0.2, 0, 0), # 第二部分突出显示,值越大,距离中心越远 autopct='%.2f%%', # 格式化输出百分比 startangle=90, pctdistance=0.7 ) # plt.legend(loc="left") # 图例放在图标位置 plt.legend(bbox_to_anchor=(1.05, 1), loc=3, borderaxespad=0.) plt.show()

运行结果:

image-20211227231825957

回顾一遍,绘制图形的步骤:初始化(导库、数据的选取)——pyplot.figure申请画布——绘制图形pyplot.bar——设置相关的标签、坐标轴、图例以及标题——展示或者导出保存。

但是绘制饼图和柱状图有些不一样的部分我认为就是:

plt.pie(x=perc, labels=lables, # 设置饼图标签 colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色 shadow=True, labeldistance=1.2, # explode=(0, 0.2, 0, 0), # 第二部分突出显示,值越大,距离中心越远 autopct='%.2f%%', # 格式化输出百分比 startangle=90, pctdistance=0.7 )

这个方法不一样使用的是pyplot.pie()

因为是使用的占比来显示饼图的面积展示,所以需要提供百分比,在初始化的时候需要对数据进行相应的处理。

# 计算每个景点旅游游客占比,保留两位小数 perc=(tournum/all_tournum)*100

可以看到旅游景点秦皇岛北戴河是去的人数最多的。占比32.33%,过来就是西柏坡——天桂山。

有的时候,因为图像大小的原因,这个饼图特别容易和图例重合所以我们需要对图例进行设置:

plt.legend(bbox_to_anchor=(1.05, 1), loc=3, borderaxespad=0.)

这样布局就会好看很多。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3