2016-05-14 71 views
0

我正在尝试在ggplot中创建第二行x label。包含字母的矢量需要在那里打印。Paste vector to expression in x label

DF 
line 1 line 2 
A   1 
B   1 
C   2 
D   2 

我发现标签的第二行可以与

xlab = expression(atop(paste("line 1"), 
      "line 2")) 

加入,但显然只打印“行1”和“2号线”。谢谢你的任何建议。

+0

它导致'$ DF在line1'在第二的第一行和'$ DF line2',但不包含有数据 – HoHoHo

回答

0

请看看多行文字

mtext(c(paste(DF[,1], collapse=' '), paste(DF[,2], collapse=' ')), line=2:1) 

编辑: 这产生你想要什么,还是?

x <- runif(n=10) 
lt <- data.frame(line1=c('A', 'B', 'C', 'D'), line2=rep(1:2, each=2)) 
plot(x) 
mtext(c(paste(lt$line1, collapse=' '), paste(lt$line2, collapse=' ')), line=2:1) 

EDIT2: 使用GGPLOT2

df <- data.frame(gp = factor(rep(letters[1:3], each = 10)), y = rnorm(30)) 
library(ply) 
ds <- ddply(df, .(gp), summarise, mean = mean(y), sd = sd(y)) 
plot.new() 
ggplot(df, aes(x = gp, y = y)) + geom_point() + geom_point(data = ds, aes(y = mean), colour = 'red', size = 3) 
mtext(c('x', 'y'), line=1:2, side=2) 
+0

它只是打印2行中的列名 – HoHoHo

+0

不,它在第一行打印:“ABCD”,在第二行打印“1 1 2 2”。或者你想要什么? – FlorianSchunke

+0

我使用'ggplot2'它好像不接受'mtext' – HoHoHo