【发布时间】:2016-05-16 12:57:18
【问题描述】:
我正在尝试构建一个图,在其中绘制正态分布的变量,在 x 轴上显示它们的平均值,在 y 轴上显示标准偏差 (SD)。有点像密度图,但不是在 y 轴上显示密度,而是我想要 SD(值)。
我正在处理以下数据,
set.seed(1)
mu1 <- rnorm(10^5, mean = 1, sd = 1)
mu3 <- rnorm(10^5, mean = 3, sd = 2)
两个正态分布的变量。这里他们的平均值和标准差,
# install.packages("tidyverse", dependencies = TRUE)
require(tidyverse)
tibble(mu1, mu3) %>% summarise_all(funs(mean, sd))
#> # A tibble: 1 x 4
#> mu1_mean mu3_mean mu1_sd mu3_sd
#> <dbl> <dbl> <dbl> <dbl>
#> 1 0.9993454 3.000825 0.9982848 1.998234
我玩过ggplot2 和其他tidyverse 包,以更接近我想要的。我也尝试过从箱形图中复制this function 做类似的事情,但已经成功了。
这是我的开始,
tibble(mu1, mu3) %>% gather() %>% ggplot() +
geom_density(aes(x = value, colour = key)) +
labs(x = 'mean', y = 'currently density, but I would like sd')
【问题讨论】:
-
你有你心目中情节的例子吗? (可能是一张图)。你的情节应该传达什么信息?
-
我或多或少想要你看到的图中的内容,但我想要 y 轴上的标准偏差而不是密度。这有意义吗?
-
对我来说不是真的,因为 sd 只是一个数字。它不会随着分布而变化(与密度一样)。
-
您正在绘制密度(这是
geom_density()的用途),x 轴和 y 轴都没有显示平均值或标准差。您链接的示例中的箱线图实际上传达了与密度图类似的信息,但方式不同。它也没有标准偏差的平均值作为其轴之一。我真的不明白你的问题......
标签: ggplot2 tidyverse r ggplot2 data-visualization kernel-density