2012-05-16 22 views
5

से यूनानी प्रतीकों के साथ धुरी लेबल प्लॉटिंग मैं ग्रीक प्रतीकों को धुरी लेबल के रूप में प्लॉट करने की कोशिश कर रहा हूं। कारण अलग तराजू के साथ कई भूखंडों पाशन के लिए, मैं एक वेक्टर के बजाय expression() भीतर प्रतीक नाम का उपयोग कर के प्रतीक का नाम शामिल है कि, जो ठीक काम करता है का उपयोग करना चाहेंगे:वेक्टर

x <- rnorm(10, 5,6) 
y <- rnorm(10, 2,1) 
xlab <- expression(paste(mu, "mol/mol")) 
plot(x,y, xlab = xlab) 

किसी कारण से, मैं नहीं कर सकता

k <- "mu" 
xlab <- expression(paste(get(k), "mol/mol")) 
plot(x,y, xlab = xlab) 

मैं एक ऐसी ही question पाया है, लेकिन क्या कार्यों के लिए काम किया ग्रीक प्रतीकों के लिए काम करने के लिए प्रतीत नहीं होता: एक वेक्टर प्रतीक नाम वाले के साथ "म्यू" की जगह

ylab <- substitute(paste(nn, "mol/mol"), list(nn=k)) 
xlab <- bquote(.(k) * "mol/mol") 

plot(x,y, ylab = ylab, xlab = xlab) 

मैं गलत क्या करूँ? एक वेक्टर के माध्यम से अक्ष लेबल के लिए यूनानी प्रतीक कैसे प्राप्त करें?

+0

अभिव्यक्ति एक आदिम कार्य है। यह अपने तर्कों का मूल्यांकन नहीं करता है। – vinux

+1

क्या [यह क्यू एंड ए] (http://stackoverflow.com/questions/10042258/generate-a-list-of-expression-literals-from-an-integer-sequence) मदद करता है? – fotNelton

+0

@ फ़ोट नेलटन: यह कम से कम काम नहीं करेगा: ylab <- do.call ("अभिव्यक्ति", लापरवाही (के, फ़ंक्शन (i) विकल्प (के * "एमओएल/एमओएल", सूची (के = i))) – Mikko

उत्तर

5

इस प्रयास करें:

xlab = parse(text=paste(k, "*mol/mol")) 
+0

क्या कोई बता सकता है कि '*' आवश्यक क्यों है और यह क्या करता है? – Henrik

+0

धन्यवाद बैपटिस्ट! – Mikko

+1

'प्लॉटमाथ' का सुझाव है कि इसका उपयोग' x * y' में "juxtapose x और y" में किया जाता है, जो उन्हें एक दूसरे के बाद (बिना किसी स्थान के) रखा जाता है। – baptiste