2011-07-07 6 views
5

मैं जालीजाली xyplot

library(lattice) 
X1=c(5, -2, 1, -3) 
X2=X1^2 
names=paste("dot", 1:4, sep="") 
xyplot(X2~X1, data=data.frame(X1, X2), pch=20, cex=1:4) 

अब मैं प्रत्येक डॉट के लिए एक लेबल (पाठ) जोड़ना चाहते हैं के साथ एक xyplot बनाया है पर लेबल जोड़ें। जानकारी है

names=paste("dot", 1:4, sep="") 

में मैं निम्नलिखित

panel.text(x=X2, y=X1, names) 

या, का उपयोग कर directlabels

library(directlabels) 
p=xyplot(X2~X1,data=data.frame(X1, X2), pch=20, group=names, cex=1:4) 
direct.label(p,smart.grid,FALSE) 

कोई सफलता के साथ की कोशिश की है लेकिन मैं इसे ज्यादा पसंद नहीं है, क्योंकि मैं विभाजित करने के लिए किया था group=names का उपयोग कर समूहों में, मूल रूप से प्रत्येक बिंदु एक अलग समूह में है? क्या ऐसा करने का कोई और तरीका है?

उत्तर

9

आप एक नया पैनल समारोह को परिभाषित करने की कोशिश कर सकते हैं:

xyplot(X2~X1, data=data.frame(X1, X2), pch=20, cex=1:4, 
     panel=function(x, y, ...) { 
       panel.xyplot(x, y, ...); 
       ltext(x=x, y=y, labels=names, pos=1, offset=1, cex=0.8) 
      }) 
+1

मैं वास्तव में इन पैनलों पर एक अच्छा ट्यूटोरियल पढ़ना चाहिए। मुझे नहीं पता कि हमें 2 फ़ंक्शंस, xyplot और panel.xyplot – RockScience

+0

पर कॉल क्यों करना है, यह काम करता है, बहुत धन्यवाद – RockScience

+0

क्या होगा यदि मैं pos के लिए वेक्टर प्रदान करना चाहता हूं? (प्रत्येक बिंदु में स्थिति के लिए 1 और 3 के बीच एक अलग संख्या होगी) – RockScience