【数据篇】32 # 如何选择合适的方法对数据进行可视化处理?

news2024/9/27 12:14:45

说明

【跟月影学可视化】学习笔记。

从原始数据中过滤出有用的信息

下面通过航拍公园人群分布例子,按照某些属性对数据进行过滤,再将符合条件的结果展现出来。

数据来源:https://github.com/akira-cn/graphics/blob/master/data/park-people/data.json

[{
  "x": 456,
  "y": 581,
  "time": 12,
  "gender": "f"
}, {
  "x": 293,
  "y": 545,
  "time": 12,
  "gender": "m"
}, {
  "x": 26,
  "y": 470,
  "time": 12,
  "gender": "m"
}, {
  "x": 254,
  "y": 587,
  "time": 12,
  "gender": "m"
}, {
  "x": 385,
  "y": 257,
  "time": 8,
  "gender": "m"
}, 
...]

上面数据里数组中的每一项表示一个游客,x、y 是拍摄位置,time 是时间,gender 是性别。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>游客散点图</title>
        <style>
            #main {
                width: 500px;
                height: 500px;
                position: absolute;
                border: 1px dashed #fa8072;
            }

            #main > * {
                position: absolute;
                left: 0;
                top: 0;
                width: 100%;
                height: 100%;
            }

            #main .landmark {
                position: absolute;
                line-height: 200px;
                width: 200px;
                height: 200px;
                border-radius: 50%;
                text-align: center;
                font-size: 32px;
                color: #fff;
            }
            #main .landmark1 {
                background: #daa520;
            }
            #main .landmark2 {
                left: 260px;
                background: #fa8072;
            }
            #main .landmark3 {
                top: 260px;
                background: #6a5acd;
            }
            #main .landmark4 {
                top: 260px;
                left: 260px;
                background: #2e8b57;
            }
        </style>
    </head>
    <body>
        <div id="main">
            <div>
                <div class="landmark landmark1">广场</div>
                <div class="landmark landmark2">休闲区</div>
                <div class="landmark landmark3">游乐场</div>
                <div class="landmark landmark4">花园</div>
            </div>
            <canvas width="600" height="600"></canvas>
        </div>
        <script>
            const canvas = document.querySelector("canvas");
            const { width, height } = canvas;

            function draw(data, filter = null) {
                if (filter) data = data.filter(filter);
                const context = canvas.getContext("2d");
                for (let i = 0; i < data.length; i++) {
                    const { x, y, gender } = data[i];
                    context.fillStyle =
                        gender === "f"
                            ? "rgba(255, 0, 0, 0.4)"
                            : "rgba(0, 0, 255, 0.4)";
                    context.beginPath();
                    const spot = context.arc(x, y, 10, 0, Math.PI * 2);
                    context.fill();
                }
            }

            fetch("./data/park-people.json")
                .then((res) => {
                    return res.json();
                })
                .then((data) => {
                    // draw(data, ({ time }) => time === 8);
                    draw(data, ({ time }) => time === 12);
                    // draw(data, ({ time }) => time === 18);
                    // draw(data, ({ time }) => time === 20);
                });
        </script>
    </body>
</html>

我们可以通过过滤不同的时间段,看到人群的分布情况,比如下面是12点的游客散点图

在这里插入图片描述

强化展现形式让用户更好地感知

除了合理的数据分析以外,强化展现形式可以让用户更好地感知数据表达的内容。

比如项目:北京空气质量2013-2018,用照片跟色条,强化了用户的直观认知

在这里插入图片描述

将信息的特征具象化

有时只需要把数据的特征抽象和提取出来,再把代表数据最鲜明的特征,用图形化、令人印象深刻的形式呈现出来即可。

比如:Matt Might 教授绘制的图解博士是什么?

在这里插入图片描述

Manu Cornet 的组织架构图,用非常形象的方法绘制出了各个知名公司的组织架构差异。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java on Azure Tooling 2022年12月更新|Azure SDK 参考书代码样例支持及用户体验提升

作者&#xff1a;Jialuo Gan - Program Manager, Developer Division at Microsoft 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎回到12月的 Java on Azure Tooling 的更新。首先&#xff0c;提前祝大家新年快乐。在这次更新中&#xff0c;我们将介绍 Azure SDK 参考书的…

Linux系统之部署MxsDoc个人文件管理系统

Linux系统之部署MxsDoc个人文件管理系统一、MxsDoc介绍1.MxsDoc简介2.MxsDoc功能3.MxsDoc应用场景二、检查本地系统环境1.检查系统版本2.检查系统内核三、下载MxsDoc软件包1.创建软件目录2.下载MxsDoc软件3.查看下载软件四、部署MxsDoc1.解压MxsDoc软件包2.一键部署MxsDoc五、登…

【Linux逻辑卷管理】之pvcreate、pvdisplay和pvremove

文章目录一、逻辑卷管理(LVM)概念1. LVM 定义2. 物理卷(PV)3. 卷组(VG)4. 逻辑卷(LV)二、创建逻辑卷1. pvcreate命令将分区标记为物理卷&#xff0c;创建物理卷2. vgcreate命令将一个或多个物理卷结合为一个卷组&#xff0c;创建卷组3. lvcreate命令根据卷组中的可用物理区块,创…

【线上故障记录】MySQLTransactionRollbackException: Lock wait timeout exceeded

数据同学反馈凌晨1-2点会出现连接系统MySQL数据库等待锁超时 com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction InnoDB事务等待一个行级锁的时间最长时间默认值是50秒&#xff08;单位是秒&#x…

尚硅谷_ShardingSphere5

ShardingSphere5第01章 高性能架构模式1、读写分离架构2、数据库分片架构2.1、垂直分片2.2、水平分片3、读写分离和数据分片架构4、实现方式4.1、程序代码封装4.2、中间件封装4.3、常用解决方案第02章 ShardingSphere1、简介2、ShardingSphere-JDBC3、ShardingSphere-Proxy第03…

tcping实用小工具

Tcping----实用小工具tcping命令详解 一、tcping介绍 tcping&#xff1a;tcping命令基于tcp协议监控&#xff0c;可以从较低级别的协议获得简单的&#xff0c;可能不可靠的数据报服务。 原则上&#xff0c;TCP应该能够在从容硬线连接到分组交换或电路交换网络的各种通信系统之…

DNS域名解析

文章目录一 定义二 配置文件三 DNS解析流程四 总结一 定义 用户在浏览器输入URL&#xff0c;浏览器就会向该URL对应的服务器发送请求&#xff0c;获得对应的IP&#xff0c;才能将资源返回给用户。 简单来说&#xff0c;DNS就是将URL转化成IP的过程。 二 配置文件 在Linux系统…

js逆向-Mytoken请求参数逆向

声明 本文仅供学习参考&#xff0c;如有侵权可私信本人删除&#xff0c;请勿用于其他途径&#xff0c;违者后果自负&#xff01; 如果觉得文章对你有所帮助&#xff0c;可以给博主点击关注和收藏哦&#xff01; 前言 目标网站&#xff1a;aHR0cHM6Ly93d3cubXl0b2tlbmNhcC5j…

数益工联 x TiDB丨如何运用 HTAP 挖掘工业数据价值?

制造业是一个古老而悠久的行业&#xff0c;它的起源最早可追溯到石器时代。从新石器时代简单的工具&#xff0c;到今天复杂的智能工厂&#xff0c;制造业历经千年发展&#xff0c;蜕变成了由技术驱动的创新行业&#xff0c;充满各种自动化流程、始终互连的设备和数据丰富的流程…

深度学习笔记(一)——什么是神经网络

生物学中的神经元的定义 神经元有很多种类&#xff0c;下图就是其中的一种&#xff0c;锥体神经元。它由三部分组成&#xff0c;分别是树突&#xff0c;胞体和轴突。树突是接受输入&#xff0c;轴突是用于输出的。神经元的树突在接收到特定的输入刺激后&#xff0c;其胞体就会被…

BGP在数据中心的应用5——BGP生命周期管理

注&#xff1a; 本文根据《BGP in the Datacenter》整理&#xff0c;有兴趣和英文阅读能力的朋友可以直接看原文&#xff1a;https://www.oreilly.com/library/view/bgp-in-the/9781491983416/上一部分笔记请参考&#xff1a;https://blog.csdn.net/tushanpeipei/article/deta…

腾讯前端vue面试题合集

能说下 vue-router 中常用的 hash 和 history 路由模式实现原理吗&#xff1f; &#xff08;1&#xff09;hash 模式的实现原理 早期的前端路由的实现就是基于 location.hash 来实现的。其实现原理很简单&#xff0c;location.hash 的值就是 URL 中 # 后面的内容。比如下面这…

简单易懂的Spring扩展点详细解析,看不懂你来打我

简单易懂的Spring扩展点原理&#xff0c;看不懂你来打我总览BeanFactoryPostprocessor作用回调时机原理BeanDefinitionRegistryPostProcessor作用例子&#xff1a;Spring对Configuration、ComponentScan、Component、Bean、Import等注解的处理回调时机原理ImportSelector作用例…

vue组件之间的数据传递

目录 组件之间的通信 1、组件之间的关系&#xff1a;父子关系、兄弟关系、跨级关系 2、父子组件之间的通信&#xff08;数据传递&#xff09;&#xff1a; 3、兄弟组件之间的通信&#xff08;数据传输&#xff09;&#xff1a; 4、跨级组件之间的通信&#xff1a;provide /…

SparkSQL 入门简介

在安装目录的bin目录打开spark-shell.cmd&#xff0c;输入如下&#xff0c;按tab健&#xff0c;查看可执行数据源 spark.read.在安装目录D:\spark-3.0.0-bin-hadoop3.2\bin\input新建user.json {"username":"chen","age":3} {"username&q…

vue全家桶-vuex(一)

vue全家桶-vuex&#xff08;一&#xff09;1.Vuex概述2.Vuex中的核心特性A.State1.this.$store.state.全局数据名称-组件访问State中的数据的第一种方式2.组件访问State中的数据的第二种方式&#xff1a;按需导入B.Mutation1.this.$store.commit是触发Mutation的第一种方式2.触…

java学习day67(乐友商城)商品详情及静态化(Thymeleaf)

1.商品详情 当用户搜索到商品&#xff0c;肯定会点击查看&#xff0c;就会进入商品详情页&#xff0c;接下来我们完成商品详情页的展示&#xff0c; 1.1.Thymeleaf 在商品详情页中&#xff0c;我们会使用到Thymeleaf来渲染页面&#xff0c;所以需要先了解Thymeleaf的语法。 …

简明Java讲义 1:Java环境搭建与入门

目录 1、Java 介绍 2、Java 运行机制 3、Java开发环境搭建 4、Hello World&#xff01; 1、Java 介绍 Java是Sun微系统公司在1995年推出的&#xff0c;是一门面向对象的编程语言 2006年12月&#xff0c;Sun公司发布了JDK1.6&#xff08;也称作Java SE 6&#xff09; 200…

数位DP~

综述 数位DP的应用范围&#xff1a; 在某个区间内有多少个满足一定的性质 数位DP中使用的方法&#xff1a; 类似于前缀和。A到B相当于f[B] - a[A-1] 这一点尤为重要&#xff0c;因为已经弱化了边界&#xff0c;使得考虑的更少分情况讨论 ​ 1081. 度的数量 ​ 输入样例…

BGP综合实验

目录 1.拓扑图 2.实验要求 3.实验思路 4.主要配置 5.测试 6.实验总结 1.拓扑图 2.实验要求 AS1存在两个环回&#xff0c;一个地址为192.168.1.0/24&#xff1b;AS3中存在两个环回&#xff0c;一个为192.168.2.0/24&#xff1b;整个AS2的IP地址为172.16.0.0/16&#xff0c…