r - 绘制 log10 值时与 stat_summary() 的差异
问题描述
我对下面代码的结果感到有些困惑。我称为aux(数据)的数据框包含一个因子和一个定量变量。我想根据因子的水平绘制定量变量的平均值。
该代码还创建了包含这些分组平均值的第二个数据框。
然后有两个情节。第一个对我来说很好:它以两种不同的方式绘制正确的值,即在原始aux数据帧上使用stat_summary()或在aux.grouped数据帧上使用 geom_point( )。
但是,当我尝试绘制定量变量的log10值时,stat_summary()并没有绘制出我预期的结果。我知道在ggplot映射线上在aes下使用log10可能是这个问题的根源。我没有得到的是什么是stat_summary()绘图,以及为什么它不绘图,如果涉及到不匹配的映射问题,则改为非 log10 值。
非常感谢你的帮助。
最好的,
大卫
aux <- read.table("aux.txt", header = TRUE, sep = "\t")
aux$nb.NAs <- factor(aux$nb.NAs)
aux.grouped <- aux %>%
group_by(nb.NAs) %>%
dplyr::summarise(mean_values = mean(values))
ggplot(aux, aes(x = nb.NAs, y = values, group = nb.NAs)) +
stat_summary(geom = "point", fun = "mean", colour = "red", size = 10) +
geom_point(data = aux.grouped, aes(x = nb.NAs, y = mean_values), colour = "blue", size = 5)
ggplot(aux, aes(x = nb.NAs, y = log10(values), group = nb.NAs)) +
stat_summary(geom = "point", fun = "mean", colour = "red", size = 5) +
geom_point(data = aux.grouped, aes(x = nb.NAs, y = log10(mean_values)), colour = "blue", size = 5)
解决方案
我认为这回答了你的问题。
df<-structure(list(nb.NAs = structure(c(2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L),
.Label = c("2", "3"), class = "factor"),
values = c(5584949.80357048, 8014873.492117, 17206608.4238154,
1524223.86730749, 5882593.98508629, 19907181.0901551,
4945004.91561103, 20886241.7691373, 51093766.9511132,
6436423.4434915)),
row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 12L, 16L), class = "data.frame")
df$nb.NAs <- factor(df$nb.NAs)
aux.grouped <- df %>%
group_by(nb.NAs) %>%
dplyr::summarise(mean_values = mean(values), mean_log10 = mean(log10(values)),
log10_mean = log10(mean(values)))
当您运行此代码时,您会看到我以两种不同的方式计算 log10 值,第一种是获取 log10 值的平均值,而第二种是获取平均值的 log10 值。您的第二个情节遵循后者(7.31 和 6.89)。这就是为什么您会在红点和蓝点之间获得差异。您可以将这些值与您的第二个图匹配并查看差异。
# A tibble: 2 x 4
nb.NAs mean_values mean_log10 log10_mean
* <fct> <dbl> <dbl> <dbl>
1 2 20531771. 7.19 7.31
2 3 7764603. 6.74 6.89
推荐阅读
- reactjs - React & Axios - 从对象内部的对象中获取值
- python - 在电子邮件主题中添加变量
- tailwind-css - How to create alert in tailwindcss like the alert api in material-ui?
- c# - Why the reverse is not working ? and how can I add the rotation part?
- java - 如何从另一个类访问主类中的变量
- javascript - 如何使用 React Hooks 执行错误边界
- c# - sqlite-net-pcl 查询返回正确的行数,但所有数据为空或 0
- jinja2 - 如何按内部列表中的第一项过滤列表列表?
- android - Firebase Phone Auth 不适用于 React Native 应用程序(reCAPTCHA 后屏幕保持白色)
- regex - 正则表达式从 PostgreSQL 11.0 中的列中捕获值