2016-05-14 64 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