पर अलग-अलग अक्ष टिक्स और अक्ष लाइनों को नियंत्रित करना अक्ष के स्केल टिक टिक रखते हुए, xyplot
के आस-पास के बॉक्स को हटाने के बारे में मैं कैसे जा सकता हूं? एडवर्ड टुफटे के न्यूनतम डेटा ग्राफ़िक सौंदर्यशास्त्र की भावना में, ये धुरी रेखाएं "गैर-डेटा स्याही" हैं, और (मिटाई जानी चाहिए) "मिटा दी जा सकती हैं।"आर जाली xyplot
library(lattice)
my.df <- data.frame(x=-10:10)
my.df$y <- my.df$x^2
xyplot(y~x,data=my.df)
ऐसा लगता है कि ट्रेल्लिस प्रदर्शन मानकों (जैसे axis.line$col
) पर नियंत्रण दोनों अक्ष लाइनों और अक्ष एक साथ टिक्स:
xyplot(y~x,data=my.df,
par.settings=list(axis.line=list(col="transparent")))
... है जो वांछित परिणाम नहीं, इसलिए ऐसा नहीं लगता कि बॉक्स छोड़ते समय लाइनों को बंद करने का एक आसान तरीका है।
सबसे अच्छा मैं के साथ आने कर लिया है एक जानवर बल हैक, जहाँ मैं panel.segments
का उपयोग कर हाथ से टिक के निशान का निर्माण होता है:
at.x=pretty(c(-10,10))
at.y=pretty(c(0,100))
xyplot(y~x,data=my.df,
par.settings=list(axis.line=list(col="transparent")),
scales=list(x=list(at=at.x,labels=at.x),
y=list(at=at.y,labels=at.y)),
panel=function(...){
panel.xyplot(...)
panel.segments(x0=at.x,x1=at.x,y0=-4,y1=-2)
panel.segments(x0=-11.5,x1=-11,y0=at.y,y1=at.y)
}
)
इस के करीब है वांछित परिणाम, लेकिन टिक अंक उचित लंबाई होने और डेटा बिंदुओं से "अच्छी" दूरी को ऑफ़सेट करने के लिए आवश्यक कुछ झुकाव है। ये मान एक ग्राफिक से अगले तक अनुवाद नहीं करेंगे। इसके अलावा, ध्यान दें कि अक्ष लेबल अब टिक अंकों से बहुत दूर हैं। मुझे यकीन है कि उस पैडिंग को कम करने का एक तरीका है, लेकिन यह केवल कोड को भी कम और पोर्टेबल बना देगा।
तो कोई भी प्लॉट क्षेत्र के आस-पास "बॉक्स" बनाने वाली रेखाओं को दबाने के बारे में कैसे जा सकता है, जबकि टिक अंक और धुरी लेबल बरकरार रहते हैं? बोनस पॉइंट्स यदि इस दृष्टिकोण का उपयोग कुछ को दबाने के लिए भी किया जा सकता है, लेकिन सभी लाइनों (उदा। बाएं और निचली लाइनों को छोड़ दें, लेकिन शीर्ष और दाएं रेखाओं को दबाएं)।
यह बहुत अच्छा लग रहा है। क्या आप धुरी फ़ंक्शन की प्रत्येक पंक्ति क्या करते हैं और आप इसे क्यों कर रहे हैं इसके बारे में एक छोटी टिप्पणी प्रदान करना चाहते हैं?मुझे निम्न-स्तरीय धुरी फ़ंक्शंस पर सहायता प्रलेखन मिल रहा है (जैसे 'axis.default' बहुत प्रबुद्ध नहीं है। – mac
@mac, बाहर निकलता है ट्रेलिस विकल्पों में कुछ अनावश्यक परिवर्तन होता है, और असली चाल लगता है कस्टम धुरी फ़ंक्शन को औपचारिक तर्क 'line.col' प्रदान करें। – BenBarnes
नाइस। FWIW, 'line.col =" black "' की आवश्यकता है क्योंकि डिफ़ॉल्ट रूप से' panel.axis() '' line.xis() 'से अपना लाइन रंग लेता है। प्राप्त करें ("axis.line") ', जिसे आपने पहले पारदर्शी "' –