改变 humapr 的美学

问题描述 投票:0回答:1

最近我一直在 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 位小数。这是一个有点过时的软件包,但目前,它是更好地满足我的需求的一个。

r ggplot2
1个回答
0
投票

您可以关闭 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

© www.soinside.com 2019 - 2024. All rights reserved.