2012-01-29 5 views
12

लंबे पहलू/स्ट्रिप टेक्स्ट के साथ निम्नलिखित ggplot2 ग्राफ पर विचार करें दो पंक्तियों में विभाजित। पाठ मुखौटा शीर्षक के लिए समर्पित क्षेत्र के बाहर चला जाता है।ggplot2: स्प्लिटिंग पहलू/स्ट्रिप टेक्स्ट को दो पंक्तियों में विभाजित करना

library(ggplot2) 
x <- c(1:3, 1:3) 
y <- c(3:1, 1:3) 
grp <- c(0, 0, 0, 1, 1, 1) 
p <- qplot(x=x, y=y) + geom_line() + facet_wrap(~ grp) 
grob <- ggplotGrob(p) 
strip.elem.y <- grid.ls(getGrob(grob, "strip.text.x", 
       grep=TRUE, global=TRUE))$name 
grob <- geditGrob(grob, strip.elem.y[1], 
     label="First line and\n second line") 
grid.draw(grob) 

क्या स्ट्रिप टेक्स्ट क्षेत्र की ऊंचाई बढ़ाने का कोई तरीका है?

+1

आप 'ट्रांसफॉर्म' के अंदर 'string_' से 'str_wrap' फ़ंक्शन का उपयोग कर सकते हैं। विवरण के लिए [Ista का उत्तर] (https://groups.google.com/forum/#!topic/ggplot2/0iODapyt2Pc) देखें। –

उत्तर

6

मैं इस पर विभिन्न तरीकों से कोशिश की, लेकिन निराश paste(strwrap(text, width=40), collapse=" \n") हो रही देने के लिए मुझे डेटा की एकल पंक्ति के लिए परिणाम और से प्रत्येक बिट जोड़ नहीं था पूरी सूची से पाठ।

मैं ऐसे समाधान के साथ आया जो मेरे लिए सबसे अच्छा काम करता था। मैंने नीचे एक की तरह एक समारोह लिखा था। बाद मैं इस समारोह कहा जाता स्तंभ text

wrapit <- function(text) { 
    wtext <- paste(strwrap(text,width=40),collapse=" \n ") 
    return(wtext) 
} 

data$wrapped_text <- llply(data$text, wrapit) 
data$wrapped_text <- unlist(data$wrapped_text) 

के साथ एक dataframe data को देखते हुए, मैं तो बस के बजाय wrapped_text स्तंभ text स्तंभ के लिए मेरी labeller समारोह लागू होता है।

12

आप एक 2-लाइन लेबल का उपयोग कर सकते हैं:

grp <- c(rep("foo\nbar",3), 1, 1, 1) 
qplot(x=x, y=y) + geom_line() + facet_wrap(~ grp) 
2

ggplot2 label_wrap_gen का उपयोग करके ऐसा करने के तरीके में निर्मित का समर्थन करता है।

x <- c(1:3, 1:3) 
y <- c(3:1, 1:3) 
grp = c(rep("group 1 with a long name",3),rep("group 2 with a long name",3)) 
d = data.frame(x = x, y =y, grp = grp) 
ggplot(d, aes(x=x,y=y)) + geom_line() + facet_wrap(~ grp, labeller = label_wrap_gen(width=10)) 
संबंधित मुद्दे

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