我正在尝试设置一个条形图来比较特定化合物的对照和实验样品。该数据集称为“烃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上纠正这个问题的方法?
答案 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)
产生