在进行中国地区数据可视化的过程中,我们遇到了这样的问题。
先来感受一下中国的贫富差距:
2017年,上海市的GDP是拉萨市的60倍。
那么如果我们用气泡图在地图上标出上海和拉萨,按照比例缩小的话,就成了这样:
上海一大圈,拉萨一小点(或者没有?)
而且当年份拖动到早期的2000年左右时,大部分中西部不发达地区也是“没有数据”的。
这时候,我想到了鲁棒性超强的“考试成绩宏观调控”技术。
这个方法应用很广泛,四六级分数就是这么来的~
![clip_image002.jpg][4]
这就是传说中的Z-score标准化,与正态分布有关~
它的作用是把一系列差距比较大的数据尽量映射在-11之间,大部分覆盖在-33之间。
它的算法很简单,首先求出一系列数据的均值和标准差。记为μ和σ,然后对每个数据x进行如下运算:
x:=(x-μ)/σ
然后乘以一个期望标准差,加上一个期望均值
最终的JavaScript代码为:
javascript
1 | symbolSize: function (val) { |
这样运算之后,得到的数据仍然能较显著地看出区别但是不会太大或太小,结果是这样:
就这样,Z-score标准化体面地解决了中国贫富差距的问题!