ggplot boxplot中的异常值使用对数刻度

时间:2017-10-26 21:58:45

标签: r ggplot2 boxplot logarithm

我有一个数据集,其中包含世界上所有国家/地区的人口,并将其分为七个区域。

中国和印度是数据集中的异常值,因为他们的人口都是> 10亿人。

我尝试使用对数尺度按区域绘制人口,但是当我这样做时,我的ggplot图像中没有显示中国。这是我正在使用的代码:

ggplot(nationsCombImputed, aes(y=population,x=region)) +
  geom_boxplot() +
  scale_y_continuous(trans = "log10")

生成以下boxplot。如您所见,我希望使用对数标度来绘制这些种群。

enter image description here

正如您所看到的,东亚和太平洋地区没有异常​​值。异常值定义为大于1.5 *四分位数范围,其中IQR计算为29338577.25,这意味着以下国家被视为异常值,但未在框图中显示:

中国 印度尼西亚 日本 韩国,众议员 缅甸 马来西亚 菲律宾 泰国 越南

我正在使用的数据是{CSV}格式的here,如果有人可以解释如何使用对数刻度和ggplot两种方法来解决这些异常值,我将非常感激。

1 个答案:

答案 0 :(得分:0)

如罗宾(Robin)所述,coord_trans(y="log10")应该执行您感兴趣的事情。 有关coord_trans()和比例变换的区别的更多信息,请参见下面的链接。

what is the difference between scale transformation and coordinate system transformation