作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用对数变换进行统计分析( react 时间),现在我想用对数变换的 y 轴绘制我的数据。当我使用 coord_trans(ytrans = "log10") 时,它会给我正确的结果 - 但我的图形需要条形而不是点。
当我使用 scale_y_log10() 时,它适用于条形,但它绘制了错误的值(bar1 的平均值为 833,但显示在 900 以上;bar2 的平均值为 568,但显示更接近 500)。
set.seed(10)
bar1 <- abs(rnorm(n = 232, mean = 833, sd = 1103)) + 1
bar2 <- abs(rnorm(n = 393, mean = 568, sd = 418)) + 1
graph_data <- data.frame(RT = c(bar1, bar2), group = c(rep(1, 232), rep(2, 393)))
ggplot(graph_data, aes(group, RT)) +
stat_summary(fun.y = mean, geom = 'point', position = 'dodge') +
stat_summary(fun.data = mean_cl_normal, geom = 'pointrange', position = 'position_dodge'(width = .9)) +
coord_trans(ytrans = "log10")
ggplot(graph_data, aes(group, RT)) +
stat_summary(fun.y = mean, geom = 'bar', position = 'dodge') +
stat_summary(fun.data = mean_cl_normal, geom = 'pointrange', position = 'position_dodge'(width = .9)) +
scale_y_log10(breaks = seq(300, 1000, 100))
最佳答案
你得到不同值的原因有两个。
首先,如果您查看 coord_trans()
的帮助页面你会看到:
coord_trans is different to scale transformations in that it occurs after statistical transformation and will affect the visual appearance of geoms - there is no guarantee that straight lines will continue to be straight.
coord_trans()
只有坐标(y 轴)受 log10 影响,但受
scale_y_log10()
影响您的实际数据在其他计算之前进行对数转换。
scale_y_log10()
对于您的数据,这些值将被删除,所有计算仅使用您的部分数据进行,因此您获得的平均值与
coord_trans()
一样更大。 .
Warning messages:
1: In scale$trans$trans(x) : NaNs produced
2: In scale$trans$trans(x) : NaNs produced
3: Removed 100 rows containing missing values (stat_summary).
4: Removed 100 rows containing missing values (stat_summary).
关于r - scale_y_log10() 和 coord_trans(ytrans = 'log10' ) 导致不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25256232/
我是一名优秀的程序员,十分优秀!