gpt4 book ai didi

r - ggplot 中带有 scale_y_log10 的 stat_summary 错误?

转载 作者:行者123 更新时间:2023-12-05 06:43:40 25 4
gpt4 key购买 nike

我有一个正在聚合和绘制的数据集:

d <- # set d to the database below.

agg <- aggregate(wt ~ t, data=d, FUN=mean)

# example 1
ggplot(agg, aes(x=t, y=wt)) + geom_line(size = 1.5)

# example 1log
ggplot(agg, aes(x=t, y=wt)) + geom_line(size = 1.5) + scale_y_log10()

# example 2
ggplot(d, aes(x=t, y=wt)) + stat_summary(fun.y="mean", geom="line", size = 1.5)

# example 2log
ggplot(d, aes(x=t, y=wt)) + stat_summary(fun.y="mean", geom="line", size = 1.5) +
scale_y_log10()

示例 2:

Example 2

例子2日志:

Example 2log

问题在于,即使示例 1 和示例 2 相同,示例 1log 和 2log 不同,示例 2log 甚至与示例 2 完全不一致。

我是做错了什么还是这是一个错误?

我需要使用示例 2log,因为我想根据不同的条件进行聚合,例如

ggplot(data, aes(x=t, y=wt)) +
stat_summary(data=subset(data, dim == 6 & maxt == 32 & max_trials == 10000 & t > 2), fun.y="mean", geom="line", color="black", size = 1.5) +
stat_summary(data=subset(data, dim == 6 & maxt == 16 & max_trials == 1000 & t > 2), fun.y="mean", geom="line", color="black", size = 1.5) + scale_y_log10()

这是我正在使用的数据集,它重现了由 write.table(d, "test.dat") 导出的错误:

"wt" "t"
"7" 12 3
"9" 18 4
"11" 28 6
"13" 14 7
"15" 81 9
"21" 97 10
"23" 3 11
"25" 12 12
"28" 46 13
"35" 1296 15
"37" 63 16
"39" 43 17
"41" 88 18
"43" 395 19
"45" 512 20
"47" 154 21
"49" 9 22
"51" 83 23
"53" 5 24
"55" 1606 25
"57" 3838 26
"59" 1331 27
"74" 23 3
"76" 20 4
"81" 79 5
"83" 32 6
"85" 14 7
"88" 24 8
"89" 9 9
"93" 67 10
"97" 44 11
"98" 18 12
"99" 101 13
"100" 17 14
"101" 19 16
"102" 41 18
"103" 9 19
"105" 26 20
"108" 76 21
"109" 2 22
"113" 883 23
"116" 2054 24
"137" 16 3
"139" 26 4
"140" 4 5
"144" 15 6
"145" 5 7
"150" 31 8
"155" 49 11
"168" 5700 12
"173" 12 3
"176" 40 6
"181" 89 7
"182" 2 8
"183" 4 9
"184" 5 10
"186" 35 11
"194" 357 12
"195" 13 13
"208" 2544 14
"209" 83 15
"210" 168 16
"211" 313 17
"212" 7 18
"213" 48 19
"214" 18 20
"215" 3 21
"216" 35 22
"230" 9 3
"233" 23 4
"235" 60 5
"236" 8 6
"237" 5 7
"238" 23 8
"239" 10 9
"240" 28 10
"241" 8 11
"242" 31 12
"244" 22 13
"245" 12 14
"246" 2 15
"247" 9 16
"261" 3475 17
"266" 1091 18
"267" 53 19
"268" 13 20
"269" 40 22
"270" 264 26
"271" 1726 27
"292" 43 3
"294" 22 4
"301" 48 5
"306" 81 6
"307" 5 7
"308" 25 8
"309" 12 9
"311" 12 10
"315" 63 13
"316" 2 14
"317" 30 15

最佳答案

这与通过 scale_y_* 使用转换时发生转换的时间有关。 coord_trans 的帮助页面中有一条有用的注释,它说:

The difference between transforming the scales and transforming the coordinate system is that scale transformation occurs BEFORE statistics, and coordinate transformation afterwards.

因为转换发生在您通过 stat_summary 计算的统计数据之前,所以您的图 2loglog10(wt) 的均值图> 而不是 log10 尺度上的 mean(wt)。您可以在绘制图表之前通过计算 t 的每个级别的 log10(wt) 的平均值来验证这一点。

agg2 <- aggregate(log(wt) ~ t, data=d, FUN=mean)

ggplot(agg2, aes(x=t, y=`log(wt)`)) +
geom_line(size = 1.5)

线条的形状与 2log 中的相同。

enter image description here

关于r - ggplot 中带有 scale_y_log10 的 stat_summary 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32396753/

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