2014-02-20 81 views
0

我想绘制按距离值分组的测量数据的Boxplots。我csv - 文件是这样的:R按行划分的Boxplot

distance;fp1;fp2;fp3;...;fp99 
30;-54;-51;-45;...;-56 
40;... 
... 
400;... 

现在我要画箱线图对于具有fp1值的每一行 - fp99和距离为x轴的价值,让我对不同距离的多个箱线图并排按distance排列。 希望有人能帮助我。

所以这里是一个示例:

library(ggplot2) 
library(reshape) 

data <- read.csv(file='file.csv', head=TRUE, sep=';') 

pdf(file="output.pdf", onefile=TRUE, pagecentre=TRUE, width=12, height=6) 
data$group <- row.names(data) 
data.m <- melt(data, id.vars = "group") 



print(
    ggplot(data.m, aes(group, value)) + geom_boxplot() 
) 

产生这样的:

enter image description here

我要排除的distance为箱形图,并用它为x坐标。我希望你们明白我的意思。

+0

欢迎来到SO。如果您提供[**最小,可重现的示例**],人们就会更加乐于提供帮助(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/) 5963610#5963610)并告诉我们你已经试过的代码并解释出了什么问题。 – Henrik

回答

0

一个例子filename.csv

distance;fp1;fp2;fp3;fp99 
30;-54;-51;-45;-56 
40;-30;-40;-40;-50 

这里有一个解决方案:

# read data 
dat <- read.csv2("filename.csv") 

# reshape data 
library(reshape2) 
dat_m <- melt(dat, id.vars = "distance") 

# plot data 
boxplot(value ~ distance, dat_m) 

enter image description here

如果你喜欢ggplot2,你可以使用:

library(ggplot2) 
ggplot(dat_m, aes(x = as.factor(distance), y = value)) + 
    geom_boxplot() 

enter image description here