2013-01-03 25 views
7

İki satırda arsa için başlık almak istiyorum, ancak bu işe yaramıyor, neden? ve nasıl çalıştırabilirim? Ben bqoute çevreyi (burada-argüman) değiştirmeye çalıştı ben ... bquote yanlış bir şey yapar tahminİki satırda ana başlığı çizin

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

ama don (bquote bakmak?):

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

Bu burada çalışıyor Hangi ortamı alacağını bilmiyorum. BTW

:

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

"bla" ile çılgınca bir şey yapar. Bunu başarmak için

cevap

10

Kök sorunu, çıktının alınacak ifadelerindeki yeni satırları desteklememesidir.

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

Gerçekten ayrı ayrı çizgi oluşturmak ve çıkış gerekir. Örneğin

:

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

ifadeler Şahsen ben zaten önerilen MTEXT kullanacağı

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

enter image description here

4

bir yolu aşağıdaki gibi ana başlığı altında bir satır daha eklemek için mtext kullanmaktır:

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

daha güzel bir çözüm olabilir, ama belki de bu ihtiyaçlarınız için yeterlidir.

11

do.call her listede metin dönüştürülür hattı Şimdi çıkış . Bunu gerçekten bir tek satırlık olmak istiyorum Ama eğer atop kullanarak bquote "dolandırıcı" olabilir:

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

Hatta merkeze düzgünce her iki satırı hizalar.

İlgili konular