如何在R中绘制三组比较数据

如何在R中绘制三组比较数据,r,ggplot2,R,Ggplot2,我有一个名为mydf的数据框架,其中有Gene_symbol列和三个不同的列cancers,AML,CLL,MDS。我想画出这些癌症中每个基因的百分比。在情节中表现这一点的好方法是什么 mydf <- structure(list(GENE_SYMBOL = c("NPM1", "DNMT3A", "TET2", "IDH1", "IDH2"), AML = c("28.00%", "24.00%", "8.00%", "9.00%", "10.00%" ), CLL = c("0.00

我有一个名为mydf的数据框架,其中有Gene_symbol列和三个不同的列cancers,AML,CLL,MDS。我想画出这些癌症中每个基因的百分比。在情节中表现这一点的好方法是什么

mydf <- structure(list(GENE_SYMBOL = c("NPM1", "DNMT3A", "TET2", "IDH1", 
"IDH2"), AML = c("28.00%", "24.00%", "8.00%", "9.00%", "10.00%"
), CLL = c("0.00%", "8.00%", "0.00%", "3.00%", "1.00%"), MDS = c("7.00%", 
"28.00%", "7.00%", "10.00%", "3.00%")), .Names = c("GENE_SYMBOL", 
"AML", "CLL", "MDS"), row.names = c(NA, 5L), class = "data.frame")
在从百分比列中删除%后,我们可以通过循环遍历这些列,使用sub删除%并转换为数值,尝试使用基于R的条形图

mydf[-1] <- lapply(mydf[-1], function(x) as.numeric(sub("[%]", "", x)) )
barplot(`row.names<-`(as.matrix(mydf[-1]), mydf$GENE_SYMBOL), beside=TRUE,
            legend = TRUE, col = c("red", "green", "blue", "yellow"))
barplot(t(`row.names<-`(mydf[-1], mydf$GENE_SYMBOL)), beside=TRUE, 
              legend = TRUE, col = c("red", "green", "blue"))
library(dplyr)
library(tidyr)
library(ggplot2)
gather(mydf, Var, Val, -GENE_SYMBOL) %>% 
     mutate(Val = as.numeric(sub("[%]", "", Val))) %>% 
     ggplot(., aes(x= GENE_SYMBOL, y = Val)) + 
                    geom_bar(aes(fill = Var), position = "dodge", stat="identity")