我一直在使用此数据集:

问题描述 投票:0回答:0
然后我运行:

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 )

    

r ggplot2
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.