如何使用ggplot 2将一个变量绘制为条形图

时间:2020-07-19 03:10:58

标签: r ggplot2

我正在尝试制作一个图表,比较一个变量中的值/观察值。然后,我想根据它们的名称标记各个条形,并作为另一个变量存储在数据集中。我已经尝试过geom_bar,但似乎无法正常工作。

这是我的数据头

head(Patient11GeneExpressionProfile)

    Gene  ddCt value Fold Change
1   AIM2 -1.71470924   3.2823049
2   BCL2  1.13099363   0.4566011
3 BCL2L1 -0.40271320   1.3219918
4  BIRC2  0.07520729   0.9492057
5  BIRC3  1.46106210   0.3632256
6 CARD18          NA          NA

我已经尝试过了,但是没有用

ggplot(Patient5GeneExpressionProfile, aes( x = 'Fold Change')) + geom_bar()

谢谢!

2 个答案:

答案 0 :(得分:2)

使用您的示例:

Patient11GeneExpressionProfile = structure(list(Gene = structure(1:6, .Label = c("AIM2", "BCL2", 
"BCL2L1", "BIRC2", "BIRC3", "CARD18"), class = "factor"), `ddCt value` = c(-1.71470924, 
1.13099363, -0.4027132, 0.07520729, 1.4610621, NA), `Fold Change` = c(3.2823049, 
0.4566011, 1.3219918, 0.9492057, 0.3632256, NA)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6"))

我猜测是“比较一个变量内的值/观察值”,您的意思是比较每个基因的Fold Change。您首先需要长时间轮换数据,如果没有很多基因,则需要

library(tidyr)
library(ggplot2)

pivot_longer(Patient11GeneExpressionProfile,-Gene)
# A tibble: 12 x 3
   Gene   name          value
   <fct>  <chr>         <dbl>
 1 AIM2   ddCt value  -1.71  
 2 AIM2   Fold Change  3.28  
 3 BCL2   ddCt value   1.13  
 4 BCL2   Fold Change  0.457 
 5 BCL2L1 ddCt value  -0.403 
 6 BCL2L1 Fold Change  1.32  
 7 BIRC2  ddCt value   0.0752
 8 BIRC2  Fold Change  0.949 

我们将其直接传递给ggplot:

ggplot(pivot_longer(Patient11GeneExpressionProfile,-Gene),
aes(x=Gene,y=value,fill=name)) + 
geom_bar(stat="identity",position="dodge")

enter image description here

答案 1 :(得分:1)

我认为您希望条形的高度(按SignUpEvents)与using System.Windows.Forms;中的值匹配。如果这是您想要的,则将需要GeneFold_Change美观。添加x作为图层,它将免费标记您的列。请注意,y使用geom_col(),因此数据保持不变。如果您偏爱geom_col(),请添加stat_identity()作为图层。两者都应给您相同的结果。试试看:

geom_bar()