【大数据处理与可视化】六、数据可视化

news/2024/10/18 10:16:59/

【大数据处理与可视化】六、数据可视化

  • 实验目的
  • 实验内容
  • 实验步骤
    • 一、案例——画图分析某年旅游景点数据
      • 1、河北省总面积和游客量位居前三的景点
      • 2、河北省旅游量的占比哪个最多,哪个最少。
  • 实验小结


实验目的

1.能够详述常见图表的类型和特点。
2.能够熟练运用Matplotlib库绘制图表。
3.能够通过借助网络资源,通过自主学习解决数据可视化中遇到的问题。


实验内容

       画图分析某年旅游景点数据:以河北省景点为例,再结合所学的图表工具,把采集到的数据绘制成图表辅助分析,以得到如下几个指标:
(1)河北省总面积和游客量位居前三的景点。
(2)河北省旅游量的占比哪个最多,哪个最少。


实验步骤

一、案例——画图分析某年旅游景点数据

1、河北省总面积和游客量位居前三的景点

       由于数据都保存在CSV文件中,所以可以用pd.read_csv()函数来读取风景名胜区.csv文件中数据。需要检查一下是否存在缺失值,使用平均值来替换缺失值,这也是处理缺失值常用的方法。将scenery_data中"省份"一列作为分组键,然后取出"河北"分组的数据。
       找出河北省占地面积和游客数量位居前三的景点.这里使用了"总面积","游客量"两列数据.为了能够直观的看到这里两列数据,使用直方图.x轴: 景点的名称y轴: 表示占地面积和游客数量从生成的条形图可以看出,接待游客数量处于前三名的景点分别是:秦皇岛北戴河,西柏坡-天戴山,娲皇宫景点占地面积前三分别是:避暑山庄外八庙,野三坡,秦皇岛北戴河。

代码:

import pandas as pd
import numpy as np
scenery_file_path=open(r'D:/fengjing.csv')
scenery_data = pd.read_csv(scenery_file_path)area = float("{:1f}".format(scenery_data['总面积(平方公里)'].mean()))
tourist=float("{:.1}".format(scenery_data['游客量(万人次)'].mean()))
values ={"总面积(平方公里)":area,"游客量(万人次)":tourist}
scenery_data=scenery_data.fillna(value=values)data = scenery_data.groupby("省份")
hebei_scenery=dict([x for x in data])['河北']import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
area=hebei_scenery['总面积(平方公里)'].values
tourist = hebei_scenery['游客量(万人次)'].valuesplt.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,tourist,color='r',width=.3,label='游客量')
plt.ylabel('单位:平方千米/万人次')
plt.title("河北景点面积及游客量")
plt.legend(loc = 'upper right')
plt.xticks(range(0,10),['苍岩山','嶂石岩','西柏坡-天桂山','秦皇岛北戴河','响堂山','娲皇宫','太行大峡谷','崆山白云洞','野三坡','承德避暑山庄外八庙'])
plt.show()

截图:

在这里插入图片描述


2、河北省旅游量的占比哪个最多,哪个最少。

代码:

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=['苍岩山','嶂石岩','西柏坡-天桂山','秦皇岛北戴河','响堂山','娲皇宫','太行大峡谷','崆山白云洞','野三坡','承德避暑山庄外八庙']
plt.axes(aspect=1)
plt.pie(x=percentage,labels=labels,autopct='%3.2f %%',shadow=True,labeldistance=1.2,startangle=90,pctdistance=0.7)
plt.legend(loc='center left')
plt.show()

截图:

在这里插入图片描述


实验小结

       通过本次实验,我能够详述常见图表的类型和特点,能够熟练运用Matplotlib库绘制图表。在实验过程中遇到了很多硬件或者是软件上的问题,请教老师,询问同学,上网查资料,都是解决这些问题的途径。最终将遇到的问题一一解决最终完成实验。
注意事项:
1、有疑问前,知识学习前,先用搜索。
2、熟读写基础知识,学得会不如学得牢。
3、选择交流平台,如QQ群,网站论坛等。
4、尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。


http://www.ppmy.cn/news/101847.html

相关文章

携手高通,移远通信以全栈式车载产品实力重新定义汽车

5月25日至26日,2023高通汽车技术与合作峰会在苏州成功举办。 移远通信作为高通重要的长期战略合作伙伴,受邀参加此次峰会,并现场展示了支持5G/4G、C-V2X、算力、UWB、Wi-Fi、高精定位等领先技术的多款车规级模组、天线等产品,更有…

cesium EntityCollection和EntityView的关系

Cesium中的EntityCollection和EntityView是两个紧密相关的概念,它们之间存在着重要的关系。 EntityCollection是Cesium中用于管理Entity对象的容器,它提供了一系列方法和属性,用于添加、移除、更新和查询Entity对象。当您向EntityCollection…

连续通过式清洗机 头部带磁选的皮带机 热油烟气风机轮毂 单主梁门式起重机 小H型钢轧机 环链斗式提升机 U型螺旋输送机…CAD

连续通过式清洗机头部带磁选的皮带机热油烟气风机轮毂链板机(图纸资料)滚轮MDG30-5t-17m-a5mdg型单主梁门式起重机链板机(图纸资料)电机及减速机操作平台总图拐弯皮带机螺旋机A1链板机(图纸资料)DT01P传动装…

跳跃游戏(贪心算法)

题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 输入:nums [2,3,1,1,4] 输出:true 解释:可以先跳 1 步…

Mybatis-X插件自动生成代码的使用详解(小白专用)

Mybatis-X插件自动生成代码的使用详解(小白专用) 1、 使用idea链接数据库 详见使用idea链接数据库并生成实体类 idea链接数据库之后也提供了一个生成实体类的方法,见↑ 2、安装mybatis-X插件 File–>Settings–>Plugins–>Marke…

社区团购-v.1.6.0更新

likeshop社区团购系统发布新版本1.6.0,主要更新如下: 新增: 小程序-登录引导用户填写头像和昵称 小程序-热更新代码弹窗 后台-正版检测、版本检测 后台-页面装修支持拖拽排序 后台-订单管理增加导出功能 修复: 后台-关联团…

2:异常处理

文章目录 一:try catch处理异常1:原理:2:catch中如何处理异常**3:try-catch-finally**4:多重catch5:异常的分类6:throw和throws的区别7:练习题8:重载和重写的…

C语言中二维数组和二维数组分析

问题 最近有个同事发现一个问题:一个二维数组,想把它传给一个函数,具体代码如下: char array[3][128]; void fun(char** array) {strcpy(array[0],"confirm"); }当我试图直接把二维数组名传给函数的时候,f…