Data Visualization and D3.js 笔记(1)
课程地址: https://classroom.udacity.com/courses/ud507
什么是数据可视化?
- 高效传达一个故事/概念,探索数据的pattern
- 通过颜色、尺寸、形式在视觉上表示基础数据和storytelling,然后得到一些发现
数据可视化是一种从值到图像的映射,将结构化的数据信息转化为更易理解的视觉图像。
什么是好的数据可视化?[by Cole Nussbaumer]
- 对内容有透彻的理解,知道谁是观众、他们想得到什么?
- 数据展示,选择恰当的图像类型
- 排除无效信息,删除不会为图像增加价值的内容。降低认知负担,突出数据
- 通过颜色、尺寸、布局等元素吸引观众注意力,让他们知道哪里是重点
- 故事叙述。好的数据可视化会让本身成为故事或叙述的关键点
数据科学与数据可视化
(by Ben Fry)
这是一个非线性迭代,在过程中会不断回溯前一步骤,或从新数据得到新结果进行合并。
EDA vs. Data Visualization
EDA, Exploratory Data Analysis, is whatever happened between you and your data when you are not trying to proof anything to anyone. But Data Visualization cares about it.
Amscombe 四重奏
Anscombe’s quartet是指四组基本统计特征(均值、方差、相关系数、最优拟合线)一致的数据,由他们绘制出来的图形截然不同。
说明分析数据前先绘制图表的重要性,以及离群值对统计的影响。
Data && Data Types
- 值数据 Quantitative Data
- 离散
- 连续
- 分类数据 Categorical Data (表示特性,可以用数值表示,但是没有数学意义)
- 定类数据 Nominal
- 对数据进行标注和分类的一种方法
- 有序数据 Ordinal
- 定类数据 Nominal
- 时序数据 Time Series Data
- 经过长时间重复观测得到的数据集合
Visual Encoding
Visual Encoding is mapping data to display elements.
- Position
平面内可对x和y两个变量进行编码
人眼对三维很难迅速感知 - Retinal Variables 视网膜变量
- For Ordered Data
- size
- orientation
- color saturation
- For Nominal Data
- color hue
- shape
- texture
- For Ordered Data
- Animation
not a Visual Encoding, but encodes some information- time 用帧来代表时间
大专栏 Data Visualization and D3.js 笔记(1)l Encoding">Rankings of Visual Encoding
D3.js
D3: Data Driven Document
- Data: csv / json
- Driven: 将csv / json 数据与SVG元素结合 (DOM)
- Document: HTML, CSS, JS, SVG
DOM 与 HTML
浏览器存储两种Web页面/视图
从服务器返回的初始源
1
2
3
4
5
6
7<html>
<head>
</head>
<body>
<svg>
</body>
</html>解析的DOM对象
- DOM 是一个规范,为HTML和XML文档规定了常见的编程接口
- 在页面被加载的时候逐步解析
- 通过JavaScript API访问
将HTML转为DOM
- 用户发出访问某一URL的请求
- 浏览器向服务器发送请求
- 浏览器收到服务器响应,即HTML
- 浏览器开始处理HTML文件
- 遇到一个标记,如
<html>
,浏览器会发出一个token,startTag: html
startTag:head
meta
link
- 同时会消耗这些token, 生成节点对象,并建立联系
- DOM树被生成
有趣的图表们
斜率图 Slope Graph
用斜率代表方向和变化量,可以进行group之间的比较
小多组图 Small Multiples
利用相同的布局,可以进行
- 数据
- 数据组
之间的比较
一些链接
- https://charts.animateddata.co.uk/uktemperaturelines/
- http://www.storytellingwithdata.com/blog/2014/03/more-on-slopegraphs
- https://www.youtube.com/watch?v=jbkSRLYSojo
- https://www.targetprocess.com/articles/visual-encoding/
Data Visualization and D3.js 笔记(1)的更多相关文章
- D3 & Data Visualization in Ext JS
通过适配器可以在ExtJs中轻松的集成D3的展示能力 http://video.sencha.com/watch/zvUjnFJ91xVvuwdTh2zjqP?mkt_tok=eyJpIjoiWm1a ...
- 精通D3.js笔记
DOM常用属性 innerHTML: 元素标签内部的文本. innerText outerHTML outerText nodeName: 节点名称 parentNode: 父节点 nextSibli ...
- Python equivalent of D3.js
http://brandonrose.org/ Python equivalent of D3.js Ask Question Asked 7 years, 1 month ago Act ...
- d3.js:数据可视化利器之快速入门
hello,data! 在进入d3.js之前,我们先用一个小例子回顾一下将数据可视化的基本流程. 任务 用横向柱状图来直观显示以下数据: var data = [10,15,23,78,57,29,3 ...
- D3.js & Data Visualization & SVG
D3.js & Data Visualization & SVG https://davidwalsh.name/learning-d3 // import {scaleLinear} ...
- d3.js读书笔记-1
d3.js入门 d3入门 D3是一个强大的数据可视化工具,它是基于Javascript库的,用于创建数据可视化图形.在生成可视化图形的过程中,需要以下几步: 把数据加载到浏览器的内存空间: 把数据绑定 ...
- 【 D3.js 选择集与数据详解 — 2 】 使用data()绑定数据
D3 中绑定数据大多是由 data() 函数来完成的,它是怎样工作的,它与 datum() 有什么区别呢? data()函数能够将数组各项分别绑定到各元素上,而且能够设置绑定的规则.data()还能够 ...
- Data Visualization 课程 笔记1
对数据可视化比较有兴趣,因此最近在看coursera上伊利诺伊大学香槟分校的数据可视化课程,做了一些笔记. 1. 定义 Data visualization is a high bandwidth c ...
- 学习笔记之Data Visualization
Data visualization - Wikipedia https://en.wikipedia.org/wiki/Data_visualization Data visualization o ...
随机推荐
- Graph & Trees3 - 二分图
\[二分图略解\] \[By\;TYQ\] 二分图定义: \(f(i,L) = [a \in L\;\text{&}\;\forall b \in a.to \;\text{,}\; b \n ...
- 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第八天】(solr服务器搭建、搜索功能实现)
https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...
- 600E - Lomsat gelral(找子树多颜色问题)(入门)
题:https://codeforces.com/problemset/problem/600/E 题意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和 ...
- 分布式ID的简单总结
来源:郴州网站优化 简单总结一下流行的分布式id的实现方法 雪花算法 snowflake是twitter开源的分布式ID生成算法. 核心思想是:分布式ID固定是一个long型的数字,一个long型占8 ...
- Centos7.5 firewalld防火墙配置
CentOS 7.0默认使用的是firewall作为防火墙 1.查看firewall服务状态 systemctl status firewalld 2.查看firewall的状态 firewall-c ...
- php利用curl发送 post get del put patch 请求
因为需要在php开发中对接其它接口需要用php curl去对接其它接口 我把他们封装成函数 希望能对大家有所帮助 这里面是封装好的 会自动把data进行转成json格式 同时解码成php数组 ...
- 2019-2020-1 20199324《Linux内核原理与分析》第二周作业
一.知识点总结 1.冯诺依曼体系结构的要点: ①五大基本类型部件:运算器.控制器.存储器.输入设备.输出设备 ②用二进制来表示指令和数据 ③ 核心:存储程序计算机 2.常见的汇编指令 mov指令(l指 ...
- java静态方法和静态字段
public class Dog{ public static void main(String[]args){ A a= new A(); a.add(); //java实例对象可以访问类的静态方法 ...
- 895A. Pizza Separation#分披萨问题(前缀和)
题目出处:http://codeforces.com/problemset/problem/895/A 题目大意:对于给出的一些角度的披萨分成两份,取最小角度差 #include<stdio.h ...
- 奇点云 x 阿里云 | 联合发布综合体数字化转型与数据创新解决方案
2019年7月25日下午,在阿里云峰会上海站,奇点云入选阿里云首批联合解决方案合作伙伴,并联合发布了“综合体数字化转型与数据创新解决方案”,共同探索综合体的智能服务. 关于综合体的数字化转型,奇点云联 ...