2012-05-11 18 views
34

मैं, स्पार्कलाइन प्रभाव का एक तरह बनाने ऑडियंस लेबल अप्रासंगिक हैं के लिए के रूप में, सबसे अच्छा मैं के साथ आ सकते हैं करने के लिए पूरी तरह से पहलुओं के लिए लेबल निकालना चाहते है:निकालें facet_wrap लेबल पूरी तरह से

library(MASS) 
library(ggplot2) 
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + 
    facet_wrap(~ID) + 
    theme(strip.text.x = element_text(size=0)) 

तो क्या मैं "अब स्पार्कलाइन" के लिए और अधिक जगह की अनुमति देने के लिए पूरी तरह से (अब खाली) स्ट्रिप। बैकग्राउंड से छुटकारा पा सकता हूं?

या वैकल्पिक रूप से वहाँ इस तरह द्विआधारी मूल्यवान समय श्रृंखला की एक बड़ी संख्या के लिए इस "स्पार्कलाइन" प्रभाव प्राप्त करने के लिए एक बेहतर तरीका है?

उत्तर

55

ggplot v2.1.0 या उच्चतर के लिए, element_blank() का उपयोग अवांछित तत्वों को दूर करने के:

library(MASS) # To get the data 
library(ggplot2) 

qplot(
    week, 
    y, 
    data = bacteria, 
    group = ID, 
    geom = c('point', 'line'), 
    xlab = '', 
    ylab = '' 
) + 
facet_wrap(~ ID) + 
theme(
    strip.background = element_blank(), 
    strip.text.x = element_blank() 
) 

इस मामले में, तत्व आप हटाने की कोशिश कर रहे हैं strip कहा जाता है।

ggplot2 figure without panel titles


वैकल्पिक ggplot Grob लेआउट

का उपयोग कर ggplot (v2.1.0 से पहले) के पुराने संस्करणों में, पट्टी पाठ पंक्तियों gtable लेआउट में फैला हुआ है।

element_blank टेक्स्ट और पृष्ठभूमि को हटा देता है, लेकिन यह उस स्थान को हटा नहीं देता है जिस पर पंक्ति पर कब्जा है।

इस कोड लेआउट से उन पंक्तियों को निकालता है:

library(ggplot2) 
library(grid) 

p <- qplot(
    week, 
    y, 
    data = bacteria, 
    group = ID, 
    geom = c('point', 'line'), 
    xlab = '', 
    ylab = '' 
) + 
facet_wrap(~ ID) 

# Get the ggplot grob 
gt <- ggplotGrob(p) 

# Locate the tops of the plot panels 
panels <- grep("panel", gt$layout$name) 
top <- unique(gt$layout$t[panels]) 

# Remove the rows immediately above the plot panel 
gt = gt[-(top-1), ] 

# Draw it 
grid.newpage() 
grid.draw(gt) 
+0

किसी और को '' लागू होने में त्रुटि मिल रही है (स्ट्रिप_मैट, 1, max_height): मंद (एक्स) की सकारात्मक लंबाई होनी चाहिए? – PatrickT

4
के रूप में पास के रूप में मैं बता सकता हूँ

, सैंडी के जवाब सही है, लेकिन मुझे लगता है कि यह उल्लेख वहाँ एक छोटा सा फर्क एक साजिश की चौड़ाई प्रतीत हो रहा है कि लायक है बिना किसी पहलू और पहलुओं के साथ एक साजिश की चौड़ाई हटा दी गई है।

यह तब तक स्पष्ट नहीं है जब तक कि आप इसकी तलाश नहीं कर रहे हैं, लेकिन यदि आप अपनी पुस्तक में विकम की सिफारिश करते हुए व्यूपोर्ट लेआउट का उपयोग करके भूखंडों को ढेर करते हैं, तो अंतर स्पष्ट हो जाता है।

+1

क्या आप इस पर एक उदाहरण के साथ विस्तार कर सकते हैं? – mnel

+0

हम्म। चलो देखते हैं ... –

+0

यहां हम जाते हैं - कोशिश करें [लिंक] (http: // पेस्टबिन।com/xJedJr1b)। मैं ggplot के 'हीरे' डेटासेट का उपयोग करता हूं ताकि इसे किसी के लिए काम करना चाहिए। ध्यान दें कि पहने हुए ग्राफ का सही मार्जिन अज्ञात ग्राफ से थोड़ा सा संकुचित है। –

19

मैं ggplot2 संस्करण 1 का उपयोग कर रहा हूं और आवश्यक आदेश बदल गए हैं।

के बजाय
ggplot() ... + 
opts(strip.background = theme_blank(), strip.text.x = theme_blank()) 

आप अब अधिक विस्तार के लिए

ggplot() ... + 
theme(strip.background = element_blank(), strip.text = element_blank()) 

का उपयोग करके देख http://docs.ggplot2.org/current/theme.html

2

सैंडी के अद्यतन जवाब अच्छा लगता है, लेकिन है, संभवतः ggplot के लिए अद्यतन द्वारा अप्रचलित कर दिया गया है? क्या मैं निम्नलिखित कोड (सैंडी के मूल जवाब का एक सरलीकृत संस्करण) बता सकते हैं किसी भी अतिरिक्त जगह बिना शॉन के मूल ग्राफ reproduces:

library(ggplot2) 
library(grid) 
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + 
facet_wrap(~ID) + 
theme(strip.text.x = element_blank()) 

मैं ggplot 2.0.0 का उपयोग कर रहा हूँ।

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