2013-01-03 51 views
7

我想要兩行中的標題爲情節,但這不起作用,爲什麼?我怎樣才能使它工作?在兩行中繪製主標題

CVal<-1 
SumEpsVal<-2 
plot(1:10, main=bquote(paste("C=", .(CVal), " \n ", sum(xi), "=", .(SumEpsVal)))) 

這這裏工作:

plot(1:10, main=paste("C=1", "\n", "SumXi=2")) 

我想bquote使一些錯誤...... 我試圖改變bqoute環境(其中參數的),但我不(查找bquote?)不知道要採取哪種環境。

BTW:

plot(1:10, main=bquote(paste("C=", .(CVal), "bla \n ", sum(xi), "=", .(SumEpsVal)))) 

做一些瘋狂的 「喇嘛」。實現這一

回答

10

根本問題是plotmath不支持要輸出的 表達式中的換行符。

Control characters (e.g. \n) are not interpreted in character strings in plotmath, 
    unlike normal plotting. 

您確實需要分別創建和輸出每一行。

例如:

Lines <- list(bquote(paste("C=", .(CVal))), 
       bquote(paste(sum(xi), "=", .(SumEpsVal)))) 

現在輸出的每一行中的列表中的文本轉換爲表達式do.call

mtext(do.call(expression, Lines),side=3,line=0:1) 

enter image description here

4

一種方法是使用mtext下主標題添加額外的線路如下:

plot(1:10, main=bquote(paste("C=", .(CVal)))) 
mtext(bquote(paste(sum(xi), "=", .(SumEpsVal))),side=3,line=0) 

有可能是一個更漂亮的解決方案,但也許這是足以滿足您的需求。

11

我個人使用多行文字作爲已經建議。但如果你真的希望它是一個班輪,您可以通過使用atop「欺騙」 bquote

plot(1:10, main= 
    bquote(atop(paste("C=",.(CVal)), paste(sum(xi),"=",.(SumEpsVal))))) 

甚至整齊地對準兩條線的中心。