Можно ли применить тепловую карту к этому графику тела на основе статистики по частям тела?
library(tidyverse)
library(humapr)
body_data <- tibble(loc = c(
"head", "neck", "chest", "abdomen", "arm",
"forearm", "hand", "thigh", "leg", "foot"
))
body_data |>
humap() +
geom_body(aes(loc = loc), annotate = NA)
Обновлено: Благодаря ответу Карла я смог проверить некоторые идеи по этому пакету, но у меня возникли некоторые проблемы:
В тот момент, когда я объединяю части тела в меньшее количество, побочный аргумент не работает должным образом. Вот пример кода, который я использовал:
body_data <- data.frame(loc = sampler(c("head", "neck", "chest", "abdomen", "arm",
"forearm", "hand", "thigh", "leg", "foot"), 200),
side = sampler(c("left", "right"), 200),
gender = sample(c("male", "female"), 200, TRUE),
year = 1)
humap() +
geom_body(aes(loc = loc, side = side), 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")))
Это ошибка, которую я получаю:
Procesing your data yielded 100 missing values:
Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : no non-missing arguments to max; returning -Inf
Когда я избавляюсь от аргументов сторон, это работает, как и ожидалось, но мне нужно представлять обе стороны.





library(tidyverse)
library(humapr)
body_data <- tibble(loc = c(
rep("head", 3), "neck", rep("chest", 6), "abdomen", "arm",
rep("forearm", 7), "hand", rep("thigh", 8), "leg", "foot"
))
body_data |>
humap() +
geom_body(aes(loc = loc)) +
scale_fill_viridis_c(option = "H")

Created on 2024-04-02 with reprex v2.1.0
С аргументом side`:
library(tidyverse)
library(humapr)
set.seed(1)
body_data <- data.frame(
loc = sample(c(
"head", "neck", "chest", "abdomen", "arm",
"forearm", "hand", "thigh", "leg", "foot"
), 200, TRUE),
side = sample(c("left", "right"), 200, TRUE),
gender = sample(c("male", "female"), 200, TRUE),
year = 1
)
humap() +
geom_body(aes(loc = loc, side = side), 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")
)
)

Created on 2024-04-05 with reprex v2.1.0
Спасибо за ответ! Как мне поставить сводные значения (например, %) вместо частот?
В документации указано: «При использовании stat = «identity» вы должны указать имя столбца со сводной статистикой в качестве эстетики заполнения», что предполагает что-то вроде geom_body(aes(loc = loc, fill = stat), stat = "identity"), но неясно, как тогда управлять аннотацией, поэтому может стоит проблемы Github.
Спасибо, Карл, иногда у меня это работает, но большую часть времени я получаю ошибку. Я немного отредактировал сообщение, чтобы добавить новую проблему, возникающую при попытке использовать параметр side. Тем не менее, этот пакет очень устарел, хотелось бы, чтобы была какая-то альтернатива построению человеческих тел, он был бы очень полезен в медицинском исследовательском лагере...
На самом деле это должен быть новый вопрос, но для меня он работает с аргументом side. См. добавленный пример. Это должно быть sample(), а не sampler().
Также добавлен annotate = "all" на случай, если вы захотите увидеть новые комбинации ярлыков.
взгляните на: github.com/josedv82/bdgramR/blob/master/README.md