如何制作一个好的颜色强度刻度?

机器算法验证 数据可视化
2022-03-26 02:41:02

我在统计方面并不擅长,但我认为我来对地方了。我的问题很简单:

我的问题包括比较一个小国家的几个州的人口,但有些州的人口为 3000,000,有些则为 2,000。
我把它画在地图上,颜色的“强度”取决于每个州的人口与全国人口的比较。

问题是人口众多的州以非常强烈的颜色显示,而小州几乎没有任何颜色。

有没有一种简单的方法可以“标准化”或使数据具有可比性?

我不知道我是否正确地解释了自己,但我希望有人可以帮助我。如果我的问题不清楚,请发表评论,我会澄清。

感谢您的帮助!

4个回答

对不起,但对我来说,听起来你正在尝试修复没有损坏的东西。事实上,你甚至可能试图破坏没有破坏的东西。当你有一个跨越广泛范围的定量变量(这里是人口)时,那么你用来表示它的任何指标也应该跨越一个广泛的范围。

但是对于所有与颜色相关的东西(尤其是地图),我认为关键来源是ColorBrewer

好问题,一种解决方案是重新调整颜色以使它们分布更均匀,或者调整为尾部较低的分布......但是你的图例必须足够清楚,因为以某种方式使比例变形是不公平的......

例如,在 R 中,将 normal 重新缩放为 uniform 。(你所拥有的可能会更多,因为你有大尾巴并且你希望它们更小,但原理是一样的)

X=array(rnorm(10000),c(100,100))
ramp=colorRamp(c("blue","cyan","white","yellow","red"),space ="rgb")
kleur <- rgb( ramp(seq(0,1,length=200)),max = 255)
par(mfrow=c(1,2))
image(X,col=kleur)### image without rescaling
Fn=ecdf(X)
ScaledX=array(Fn(X),c(100,100))
image(ScaledX,col=kleur)

你可以除以总人口。这将确保一切都在 0 和 1 之间。如果比例仍然太不同,请考虑使用对数比例。

问这个问题我觉得很尴尬,但你真的致力于使用颜色来描绘数量吗?有没有办法在每个状态都放一个条,它的高度代表数量?

另一种方法可能是显示带有代表地理区域的区域的地图,以及每个州的面积与人口规模成正比的地图 - 类似于感觉人造人的方式。但这将是一个痛苦的绘图 - 我不知道有任何方法可以自动化它(尽管它可能存在)