PieDonut(data, aes(pies=Class, donuts=Gene), labelposition = 1,
showRatioDonut = T, showRatioPie = T, ratioByGroup = F, showPieName = F)
获取:
[![输入图像描述在这里] [1]] [1]我也想要相同的,但每类绝对计数也是如此。
我尝试了以下内容:如何显示值,而不是百分比和中心的总和?运行:
PieDonut(data,aes(Class, Gene), showRatioPie = "absolute", showRatioDonut = function(a,r) scales::scientific(a))
但是我得到了这个错误:
> PieDonut(data,aes(Class, Gene), showRatioPie = "absolute", showRatioDonut = function(a,r) scales::scientific(a))
Error in if (showRatioPie) { : argument is not interpretable as logical
确定我在做什么错?
data: > dput(x)
structure(list(Class = c("ADTKD", "ADTKD", "Ciliopathy", "Cystic",
"ADTKD", "Ciliopathy", "ADTKD", "Cystic", "ADTKD", "Systemic",
"Glomerulopathy", "Collagenopathy", "Tubulopathy", "Systemic",
"Ciliopathy", "Collagenopathy", "Glomerulopathy", "Cystic", "Tubulopathy",
"Glomerulopathy", "Collagenopathy", "CAKUT", "Tubulopathy", "ADTKD",
"Collagenopathy", "Collagenopathy", "CAKUT", "Ciliopathy", "Glomerulopathy",
"Ciliopathy", "CAKUT", "Collagenopathy", "Cystic", "Collagenopathy",
"Glomerulopathy", "ADTKD", "Collagenopathy", "CAKUT"), Gene = c("REN",
"UMOD", "NPHP1", "OFD1", "UMOD", "NPHP1", "UMOD", "TSC2;PKD1",
"UMOD", "EVC", "LMX1B", "COL4A4", "CLDN16", "GLA", "NPHP4", "COL4A4",
"INF2", "PKD2", "CLDN16", "INF2", "COL4A4", "SALL1", "CLCN5",
"UMOD", "COL4A4", "COL4A5", "PPP1R12A", "NPHP1", "TRIM8", "NPHP3",
"17q12", "COL4A5", "PKD1", "COL4A3", "SMARCAL1", "UMOD", "COL4A5",
"PAX2")), row.names = c(NA, -38L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x5556b1306180>)
thound,谢谢!
[1]: https://i.sstatic.net/XICk8vFc.png
一个选项是手动计算计数和比例,然后将它们“添加”到类别名称中。
library(ggplot2)
library(webr)
library(dplyr, warn = FALSE)
ratio_class <- data |>
count(Class, name = "count_class") |>
mutate(
ratio_class = count_class / sum(count_class)
)
data |>
count(Class, Gene, name = "count_gene") |>
left_join(
ratio_class,
by = "Class"
) |>
mutate(
ratio_gene = count_gene / sum(count_gene),
label_class = sprintf("%s\n(%s, %s)", Class, scales::percent(ratio_class), count_class),
label_gene = sprintf("%s\n(%s, %s)", Gene, scales::percent(ratio_gene), count_gene)
) |>
PieDonut(
aes(
pies = label_class, donuts = label_gene, count = count_gene
),
labelposition = 1,
showRatioDonut = FALSE,
showRatioPie = FALSE,
ratioByGroup = FALSE,
showPieName = FALSE
)