2013-03-13 6 views
7

के साथ पिछली शून्यों को रखते हुए मैं का उपयोग कर रहा हूं ताकि ggplot2 प्लॉट्स में से किसी एक पर ओवरले टेक्स्ट हो। मैं विकल्प parse=T का उपयोग कर रहा हूं क्योंकि मुझे ग्रीक अक्षर rho का उपयोग करने की आवश्यकता है। मैं पाठ को = -0.50 कहूंगा, लेकिन पीछे वाला शून्य फिसल जाता है और मुझे इसके बजाय -0.5 मिलता है।प्लॉटमाथ

library(ggplot2) 
x<-rnorm(50) 
y<-rnorm(50) 
df<-data.frame(x,y) 

ggplot(data=df,aes(x=x,y=y))+ 
geom_point()+ 
annotate(geom="text",x=1,y=1,label="rho==-0.50",parse=T) 

किसी को भी पता है कि कैसे मैं पिछले 0 दिखाने के लिए कर सकते हैं:

यहाँ एक उदाहरण है? मुझे लगता है मैं इस तरह paste() इस्तेमाल कर सकते हैं सोचा:

annotate(geom="text",x=1,y=1,label=paste("rho==-0.5","0",sep=""),parse=T) 

लेकिन फिर मैं त्रुटि मिलती है:

Error in parse(text = lab) : <text>:1:11: unexpected numeric constant 
1: rho==-0.5 0 
      ^

उत्तर

14

यह एक plotmath अभिव्यक्ति पार्स करने समस्या है, यह ggplot2 संबंधित नहीं है।

क्या आप यह सुनिश्चित किया जाता है कि 0.50 एक चरित्र स्ट्रिंग, नहीं एक अंकीय मान जो बढ़ा दिया जाएगा के रूप में व्याख्या की है कर सकते हैं:

ggplot(data=df, aes(x=x, y=y)) + 
    geom_point() + 
    annotate(geom="text", x=1, y=1, label="rho=='-0.50'", parse=T) 

आप base का उपयोग कर समान व्यवहार प्राप्त होगा:

plot(1, type ='n') 
text(1.2, 1.2, expression(rho=='-0.50')) 
text(0.8, 0.8, expression(rho==0.50)) 

यदि आप अधिक सामान्य दृष्टिकोण चाहते हैं, तो

sprintf('rho == "%1.2f"',0.5) 
जैसे कुछ प्रयास करें

इस मुद्दे से संबंधित r-help thread है।

+0

यह काम करता है। धन्यवाद! –