2015-10-31 54 views
0

標題我有一個名爲「捕捉」數據和意見是:如何格式化GGPLOT2

x y 
0.50 3.66 
0.63 3.95 
0.77 5.82 
0.92 7.38 
1.07 8.58 
1.24 9.31 
1.42 9.52 
1.61 9.52 
1.81 9.58 
2.04 9.54 
2.29 9.56 
2.56 9.44 
2.87 9.07 
3.21 8.61 
3.61 7.92 
4.09 7.04 
4.67 5.93 
5.43 4.52 
6.52 2.90 
8.43 0.63 

我用這個代碼R:

library(ggplot2) 
ccplot <- ggplot(data = catch, aes(x = x, y = y)) + 
      geom_point(shape = 19, colour = "#0072B2") 

ccplot <- ccplot + geom_abline(intercept = 14.58, slope = -1.85, col = "#D55E00") 

ccplot2 <- ccplot + 
      xlab("time") + 
      ylab(expression(paste("ln[C(L1, L2)]/(", Delta, "t)"))) 

ccplot2 + ggtitle(expression(paste("Length-Converted Catch Curve\n(for Z=1.85; M(at 23"*degree*"C)=0.69; F=1.16; E=0.63"), hjust = 0)) 

問題出現時,打印的圖表在數字23和度數符號之間有一個很大的(遙遠的)空間。

The plot printed with the above code

我如何格式化標題,這樣的空間可以走了嗎?或者有沒有其他方法可以在ggplot2中完成正確的標題?

預先感謝您。

回答

2

在這種情況下,您最好使用unicode度符號而不是嘗試使用plotmath。

ccplot2 + ggtitle(expression("Length-Converted Catch Curve\n(for Z=1.85; M(at 23\u00B0C)=0.69; F=1.16; E=0.63)"), hjust=0) 

你也使用atop()表達佈局

ccplot2 + ggtitle(expression(atop("Length-Converted Catch Curve","(for Z=1.85; M(at 23"~degree~"C)=0.69; F=1.16; E=0.63)"))) 

什麼是你的代碼發生的事情是,它的打印第一串(新行),那麼當你切換到數學模式程度,您退出字符串並開始在雙線字符串的右側。

+0

謝謝。但我還有其他問題。如果我將來自(對於Z = ...)的文本作爲副標題,代碼是否適用? – Cloud