西电-数据可视化-实验五-高维非空间数据可视化(pyecharts)
西电-数据可视化-实验五-高维非空间数据可视化
一、实验内容
在某次大型会议中,为确保会议过程安全,会场使用了电子胸牌对场内人员的移动轨迹进行了监控。现经过处理,得到了某一天内人员在场内各个区域逗留的时间统计数据(time_allocate_day1.csv,课程资料库下载)。请根据这份数据,完成以下任务:
1、设计可视化方案,通过该方案可实现对人员的分类(绘制出图像即可)
2、请分析会场中room1~6的功能。
二、思路分析
(1)进入pyecharts官网修改demo即可
本实验涉及的图表类型如下:
parallel
pie(2)代码实现:
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Parallel, Page, Pie# 获取绘制平行坐标系的数据
def get_data_for_parallel(f):parallel_axis = []my_data = []for index, column in enumerate(f):parallel_axis.append({"dim": index, "name": column})for _, elem in f.iterrows():temp = []for i in range(24):# numpy.int64和python的int是不一样的# print(type(elem[i])) # <class 'numpy.int64># print(type(int(elem[i]))) # <class 'int'>temp.append(int(elem[i]))my_data.append(temp)return parallel_axis, my_datadef draw_parallel(f):parallel_axis, my_data = get_data_for_parallel(f)(Parallel(init_opts=opts.InitOpts(width="1500px", height="750px")).add_schema(schema=parallel_axis).add(series_name="人员分类",data=my_data,linestyle_opts=opts.LineStyleOpts(# 线宽width=0.5,# 透明度opacity=0.5,# 线的类型 solid/dashed/dottedtype_="dashed",# 线的颜色# 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比# 如果 globalCoord 为 `true`,则该四个值是绝对的像素位置color={'type': 'linear','x': 0,'y': 0,'x2': 0,'y2': 1,'colorStops': [{'offset': 0, 'color': 'yellow'}, {'offset': 1, 'color': "purple"}],"global": False})).set_global_opts(title_opts=opts.TitleOpts(title="平行坐标系")).render("parallel.html"))# 获取构建饼图的data
def get_data_for_pie(f1, f2):# id与其对应的身份id2identity = {}# 遍历id-身份表for _, elem in f2.iterrows():id2identity[elem[0]] = elem[1]data = []# room1-room6 循环六次for i in range(6, 12):# 初始化该房间不同身份的人停留的时间为0this_room = {"waiter": 0, "vip": 0, "reporter": 0, "participant": 0, "meeting": 0}# 构建infosinfos = []for _, elem in f1.iterrows():infos.append([id2identity[int(elem[0])], int(elem[i])])# 遍历infosfor info in infos:this_room[info[0]] += info[1]this_room = [(key, value) for key, value in this_room.items()]data.append(this_room)return data# 绘制room1-room6的饼图
def draw_pie(f1, f2):data = get_data_for_pie(f1, f2)page = Page()for i, this_data in enumerate(data):name = "room" + str(i+1)pie = (Pie().add("停留总时间", this_data).set_global_opts(title_opts=opts.TitleOpts(title=name)).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")))page.add(pie)page.render("pie.html")if __name__ == '__main__':# 读取文件df1 = pd.read_excel("time_allocate_day1.xlsx")df2 = pd.read_excel("classifyday1.xlsx")# task1: 对人员分类 用平行坐标系表示draw_parallel(df1)# task2: 推断每一个房间的类型 饼图draw_pie(df1, df2)
(3)实验细节:
@一个易错点:
@在构造pie的数据时,初始化一个字典,然后遍历更新这个字典就可:
三、实验结果
Room1: 普通参会人员“meeting”占比最多 => 休息区Room2:嘉宾“VIP”占比最多 => 嘉宾休息区
Room3: 普通参会人员“meeting”占比最多 => 休息区
Room4: 记者“reporter”占比最多 => 记者区
Room5: 黑客竞赛参赛者“participant”占比最多 => 黑客竞赛现场
Room6: 场内工作人员“waiter”占比最多 => 工作人员休息区
西电-数据可视化-实验五-高维非空间数据可视化(pyecharts)相关推荐
- 数据可视化--实验五:高维非空间数据可视化
声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接 文章目录 概要 实验过程 Pyecharts 实验结果 平行坐标系 room1-6房间人员时长饼图 概要 学院:计算机科学与技 ...
- 高维非空间数据可视化
高维非空间数据可视化 数据变换 降低维度: 使用线性或非线性变换把高维数据投影到低维空间 投影保留重要的关系(无信息损失:保持数据区分等) 方法: 线性方法 主成分分析(PCA) 多维尺度分析(Mul ...
- 脑电数据的实验范式及EEGLAB分析预处理
脑电数据的实验范式及EEGLAB分析预处理 一.脑电数据采集处理过程 1.1 脑电数据采集过程 1.2 实验范式标签说明 二.EEGLAB分析预处理 2.1 导入数据 2.2 选择通道数据,删除无用电 ...
- 西电计算机组装实验报告,西电模电实验报告(共7篇).docx
西电模电实验报告(共7篇) 姓名:学号: 生命科学技术学院实验报告小组成员: 实验名称: 实验报告内容基本要求: 一.实验目的:二.实验材料和仪器设备:三.实验基本原理及步骤:四.实验数据记录和结果分 ...
- 西电操作系统上机实验2
欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦--西电计科课程学习 实验2:线程共享进程数据 一.实验目的 1.学习创建线程实现多工作同步运行; 2.了解线程与进程之间的数 ...
- 西电操作系统上机实验3
欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦--西电计科课程学习 实验3:信号通信 一.实验目的 利用信号通信机制在父子进程及兄弟进程间进行通信. 二.实验内容 父进程创 ...
- 西电操作系统上机实验4
欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦--西电计科课程学习 实验4:匿名管道通信 一.实验目的 学习使用匿名管道在两个进程间建立通信. 二.实验内容 父进程创建一个 ...
- 西电操作系统上机实验1
欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦--西电计科课程学习. 实验1:创建进程 一.实验目的 学会通过基本的Windows进程控制函数,由父进程创建子进程. 二.实验内 ...
- 数据可视化|实验五 分析1996-2015年人口数据各个特征的分布与分散状况
使用 NumPy 库读取人口数据 使用 numpy 库读取人口数据,分析 1996~2015 年人口数据特征间的关系. %matplotlib inlineimport numpy as npimpo ...
最新文章
- pdf格式转换成jpg的简单教程
- java 静态 编译_Java中的动态和静态编译实例详解
- 济南python工资一般多少钱-马哥教育官网-专业Linux培训班,Python培训机构
- pq 中m函数判断嵌套_Python中numpy的布尔判断、切片、维度变化、合并、通用函数...
- Python学习笔记6(列表生成式)
- poj 1274 The Perfect Stall
- python list存储对象_《python解释器源码剖析》第4章--python中的list对象
- 深入解读:获得 2021 Forrester 全球云数仓卓越表现者的阿里云数据仓库
- labview自动生成html,使用LabVIEW实现网页数据提取及交互.pptx
- Spring中事务使用
- linux共享文件夹开机自启,ubuntu16.04.6和 18.04添加开机启动脚本,重启后自动挂载vmware的共享文件夹...
- 某盘视频网页播放视频修改播放速度代码
- Matplotlib——画图(散点图、柱状图、等高线图、3D图)
- 群体遗传学习笔记-测序技术学习
- 超级好用的在线绘图工具
- antd vue 树更新数据后不展开_Vue 性能优化 - 去除 VNode
- 系统架构设计应考虑的因素
- PowerDesigner16.5反向工程获取Oracle11g数据表结构遇到的问题及解决方法
- 计算机控制技术大题,计算机控制技术习题—广州工业大学
- Unity动态加载3D模型