gpt4 book ai didi

r - scale_y_log10() 和 coord_trans(ytrans = 'log10' ) 导致不同的结果

转载 作者:行者123 更新时间:2023-12-04 10:28:13 24 4
gpt4 key购买 nike

我正在使用对数变换进行统计分析( 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com