最近我一直在 R 中使用 humapr 包来绘制身体热图,表示疾病对不同身体部位的影响。该包基于 ggplot2,使用几乎相同的代码结构。就我而言,我正在寻找更改标签以显示摘要统计信息而不是频率,并且使用参数
stat = "identity"
并不能做出所需的更改。这是我使用的代码:
library(tidyverse)
library(humapr)
set.seed(1)
body_data <- data.frame(
loc = rep(c(
"Upper extremities", "Lower extremities","Trunk", "Head & neck"
), times = 2),
side = rep(c("left", "right"), each = 4),
gender = rep(c("male", "female"), each = 4),
year = runif(8)
)
humap() +
geom_body(aes(loc = loc, side = side, fill = year ), annotate = "all",
data = body_data, combine =
list(
`Upper extremities` = c("arm", "forearm", "hand"),
`Lower extremities` = c("thigh", "leg", "foot"),
`Trunk` = c("abdomen", "chest"),
`Head & neck` = c("head", "neck")
), stat = "identity"
)
这是该代码的输出:
我正在寻找的是更改
year
变量中的实际值(0 和 1,以及奇怪的 %),精确到 2 位小数。这是一个有点过时的软件包,但目前,它是更好地满足我的需求的一个。
您可以关闭 humapr 注释,即
annotate = NA
,然后添加不同的 ggplot (或扩展)美学,例如geom_table()
:
library(tidyverse)
library(humapr)
library(ggpp)
set.seed(1)
body_data <- data.frame(
loc = rep(c(
"Upper extremities", "Lower extremities","Trunk", "Head & neck"
), times = 2),
side = rep(c("left", "right"), each = 4),
gender = rep(c("male", "female"), each = 4),
year = runif(8)
)
tb <- body_data |>
select(loc, side, year) |>
mutate(year = round(year, 2))
df <- tibble(x = 1, y = 0.9, tb = list(tb))
humap() +
geom_body(aes(loc = loc, side = side, fill = year), annotate = NA,
data = body_data, combine =
list(
`Upper extremities` = c("arm", "forearm", "hand"),
`Lower extremities` = c("thigh", "leg", "foot"),
`Trunk` = c("abdomen", "chest"),
`Head & neck` = c("head", "neck")
), stat = "identity"
) +
geom_table(aes(x = x, y = y, label = tb), data = df)
创建于 2024-04-05,使用 reprex v2.1.0