R中的条形图帮助

时间:2014-02-10 14:57:31

标签: r graph

我正在尝试设置一个条形图来比较特定化合物的对照和实验样品。该数据集称为“烃3”,包含以下信息:

    Exp.    Contr.
c12 89  49
c17 79  30
c26 78  35
c42 63  3
pris    0.5 0.8
phy 0.5 0.9
nap 87  48
nap1    83  44
nap2    78  44
nap3    73  20
acen1   81  50
acen2   86  46
fluor   83  11
fluor1  68  13
fluor2  79  17
dibe    65  7
dibe1   67  6
dibe2   56  10
phen    82  13
phen1   70  12
phen2   65  15
phen3   53  14
fluro   62  9
pyren   48  11
pyren1  34  10
pyren2  19  8
chrys   22  3
chrys1  21  3
chrys2  21  3

当我使用公式创建条形图时:

barplot(as.matrix(hydrocarbon3),
        main=c("Fig 1. Change in concentrations of different hydrocarbon compounds\nin sediments with and without the presence of bacteria after 21 days"),
        beside=TRUE,
        xlab="Oiled sediment samples collected at 21 days",
        space=c(0,2),
        ylab="% loss in concentration relative to day 0")

我收到这个图表,但是我需要每个化学品的对照和实验样品彼此相邻才能进行更准确的比较,而不是左边的实验样品和右边的对照样品:是否有在R上纠正这个问题的方法? barchart

3 个答案:

答案 0 :(得分:0)

尝试转置矩阵:

barplot(t(as.matrix(hydrocarbon3)), beside=T)

基本上,barplot将按照它们在矩阵中显示的顺序绘制事物,因为矩阵只是一个向量包裹的向量,意味着barplot将绘制第一列的所有值,然后是第二列的所有那些,等等。

答案 1 :(得分:0)

请检查此问题:Barplot with 2 variables side by side

它使用ggplot2,因此在运行之前你必须使用以下代码:

intall.packages("ggplot2")
library(ggplot2)

希望这适合你。再加上ggplot2看起来好一点!

答案 2 :(得分:0)

> df
  row exp con
1   a   1   2
2   b   2   3
3   c   3   4
> barplot(rbind(df$exp,df$con),
+         beside = TRUE,names.arg=df$row)

产生

enter image description here