可视化数据指数设置 (两种数据怎么可视化)

两种数据怎么可视化,可视化数据怎么计算

什么是对数刻度?

就是在作图之前,先对原始数值做对数计算,在画到坐标轴上。

简单回忆下中学学过的对数函数:log2(x), loge(x)和log10(x)

两种数据怎么可视化,可视化数据怎么计算

为什么要使用对数刻度?

回答这个问题之前,先看看,你有没有见过这样的图:

很多数据点,都集中在较小值那一端,看也看不清;而另一端较大数值,却数据点很少、显得很空旷。

两种数据怎么可视化,可视化数据怎么计算

原因就是这些数据的分布不均,不在一个数量级。或者说,如果把数值从小到大排序,会发现他们不是等距离的逐渐增加(比如1, 2, 3, ….;等差数列),而是成倍数的增长(比如1, 10, 100, 1000 …;等比数列)

这个时候,使用对数刻度的优点就呈现出来了。

1) 数量级相差太大的数值,也可以放在同一个尺度上呈现。

2) 视觉化上有优势:视觉上相差的距离,有数据意义,代表了相差了多少倍。

现在以[1, 3.16, 10, 31.6, 100]这几个数为例说明这两个优点。

[1, 3.16, 10, 31.6, 100]示例

对数刻度优点:

1) 数量级相差太大的数值,也可以放在同一个尺度上呈现。

比如,对数化之前,这几个数值呈现效果如下:

大部分都集中在左侧一段。

两种数据怎么可视化,可视化数据怎么计算

对数化之后(以10为底数,即log10(x)),就可以在图形上均匀分布了。

两种数据怎么可视化,可视化数据怎么计算

对数刻度优点:

2) 视觉化上有优势:视觉上相差的距离,有数据意义,代表了相差了多少倍。

在对数刻度的坐标轴上的任意两个点,距离相差多少,就代表这两个值相差多少。这样处理后的数字化呈现,便于理解。

比如下图的1)和2),都代表差了3.16倍;

而下图的3)相差了这个长度的任何两个点都代表相差3.16倍

两种数据怎么可视化,可视化数据怎么计算

注意对数刻度坐标轴的正确标注方法。一般有两种:

方法1)直接标真实值,

或者方法2)标记x,然后轴名称加上公式log10(x)。比如下图:

两种数据怎么可视化,可视化数据怎么计算

最好使用方法1)。否则数据点代表的真实值是多少,还需要花时间理解、计算。

参考:https://serialmentor.com/dataviz/coordinate-systems-axes.html

真实案例

现在再看一个真实案例:

2007年,各个国家人均GDP(x轴)和寿命(y轴)的关系。

数据点未经处理,直接作图为:

两种数据怎么可视化,可视化数据怎么计算

Python plotly作图

因为寿命相差比较平均,但是每个国家GDP则相差较大(最高最低差了两个数量级),可以考虑对数处理。

下图是log10(GPD)后的数据呈现:

两种数据怎么可视化,可视化数据怎么计算

处理后的x坐标轴,标记的是其真实值。刻度线分别代表了:300,400,500, …. 1000, 2000, 3000, 4000, 5000, … 10k, 20k, 30k, … 60k…

不出所料,400/300=1.33,500/400=1.25… 所以被标记的刻度线,距离变小,从稀疏逐渐变密集。

活学活用

对数刻度可以用在数据量呈倍数增长的情况下。

聪明的读者,一定想到了最近的疫情扩散情况,极其符合对数刻度作图。

这里借用了《金融时报》数据化专家John Burn-Murdoch的图表。对数化处理后,可以从每个国家的曲线是否还在上升,判断感染速率是否下降,也就是是否出现了疫情拐点。

转载:https://www.shangyexinzhi.com/article/1619223.html

两种数据怎么可视化,可视化数据怎么计算

作图工具:Python Plotly