2013-03-08 7 views
7

के पौराणिक ग्रंथों में उप-/सुपरस्क्रिप्ट और विशेष वर्णों का उपयोग करें, मैं एकाधिक डेटासेट के लिए एक साजिश उत्पन्न करता हूं। प्रत्येक डेटासेट को अपनी खुद की किंवदंती मिलनी चाहिए, जिसमें ग्रीक अक्षरों, प्लॉटमाथ प्रतीकों या उप और सुपरसक्रिशन हो सकते हैं। मैं एक लूप में किंवदंती-ग्रंथ उत्पन्न करना चाहता हूं।आर प्लॉट्स

बीक्वोट ठीक काम करता है, अगर केवल एक किंवदंती पाठ है। अगर मैं additinal कथा ग्रंथों को जोड़ने का प्रयास, plotmath-commads खो जाना, ...

x <- 0:10 
y1 = x * x 
y2 = x * 10 

plot (1,1, type="n", xlab=bquote(Omega), ylab="Y", las=1, xlim=range(x), ylim=range(y1, y2)) 
lines(x, y1, col=1, pch=1, type="b") 
lines(x, y2, col=2, pch=2, type="b") 

# generate legend texts (in a loop) 
legend_texts = c(
    bquote(Omega^2) 
    , bquote(Omega%*%10) 
) 
# Using a single bquote works fine: 
#legend_texts = bquote(Omega^2) 
#legend_texts = bquote(Omega%*%10) 

legend(
    "topleft" 
    , legend = legend_texts 
    , col = c(1:2) 
    , pch = c(1:2) 
    , lty = 1 
) 
+1

+1 पुन: उत्पन्न उदाहरण के लिए +1! – A5C1D2H2I1M1N2O1R2T1

उत्तर

4

बदलें करने के लिए "legend_texts": ?legend के लिए

# generate legend texts (in a loop) 
legend_texts = c(
    as.expression(bquote(Omega^2)) 
    , as.expression(bquote(Omega%*%10)) 
) 

मदद पृष्ठ से, "कथा" तर्क के रूप में वर्णित है:

एक चरित्र या अभिव्यक्ति वेक्टर। किंवदंती में उपस्थित होने के लिए लंबाई ≥ 1। अन्य वस्तुओं को as.graphics द्वारा स्वीकार किया जाएगा नहीं।

आउटपुट:

enter image description here

+0

यहां मामूली डिस्लेक्सिया। सहायता पृष्ठ "अभिव्यक्ति वेक्टर" पढ़ता है, न कि "अभिव्यक्ति का वेक्टर"। :) – A5C1D2H2I1M1N2O1R2T1

6

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

legend_texts = expression(
    Omega^2, Omega*10) 

legend(
    "topleft" 
    , legend = legend_texts 
    , col = c(1:2) 
    , pch = c(1:2) 
    , lty = 1 
    ) 

मैं अगर तुम Omega^10 या Omega*10 या Omega%*%10 चाहता था नहीं बता सकता, लेकिन वे सभी स्वीकार्य plotmath भाव का उत्पादन होगा।

enter image description here

+0

'as.expression' के उपयोग के मुकाबले बेहतर है। +1 – A5C1D2H2I1M1N2O1R2T1

+0

'अभिव्यक्ति' फ़ंक्शन का उपयोग करते समय, आप तत्वों को अल्पविराम से अलग करके एकाधिक मान अभिव्यक्ति वेक्टर बनाते हैं। –

+0

धन्यवाद। मैंने केवल सहायता पृष्ठ को फिर से पढ़ा और उस निष्कर्ष पर पहुंचा। :) – A5C1D2H2I1M1N2O1R2T1

संबंधित मुद्दे