2012-08-02 15 views
27

मैंने हाल ही में फ़ंक्शन का उपयोग gridExtra पैकेज से शुरू किया है ताकि टैबलेट डेटा को वेब पर उपयोग के लिए पीएनजी छवि फ़ाइलों में बदल दिया जा सके। मैं इसके साथ खुश हूं क्योंकि यह डिफ़ॉल्ट रूप से बहुत अच्छा दिखने वाला आउटपुट बनाता है, जैसे कि ggplot2 टेबल के लिए। उस व्यक्ति की तरह जो asked इस प्रश्न को मैं व्यक्तिगत कॉलम के लिए औचित्य निर्दिष्ट करने की क्षमता देखना पसंद करूंगा लेकिन यह पहले से ही अधिक-आइस केक पर निर्भर करेगा।एक grid.table साजिश में पाठ जोड़ना

मेरा सवाल यह है कि grid.table के आसपास टेक्स्ट जोड़ना संभव है ताकि मैं प्लॉट टेबल को एक शीर्षक और फुटनोट दे सकूं। ऐसा लगता है कि यह व्यवहार्य होना चाहिए, लेकिन मुझे ग्रिड ग्राफिक्स के बारे में पर्याप्त जानकारी नहीं है ताकि टेबल ग्रोब में ग्रॉब्स को कैसे जोड़ा जा सके। उदाहरण के लिए, इस कोड:

enter image description here

जब मैं वास्तव में कोड में निम्नलिखित की तरह के बजाय दूसरे के साथ छवि संपादन करके कुछ करने के लिए सक्षम होने के लिए करना चाहते हैं:

require(gridExtra) 

mydf <- data.frame(Item = c('Item 1','Item 2','Item 3'), 
                    Value = c(10,15,20), check.names = FALSE) 
grid.table(mydf, 
      gpar.coretext=gpar(fontsize = 16), 
      gpar.coltext = gpar(fontsize = 16), 
      gpar.rowtext = gpar(fontsize = 16), 
      gpar.corefill = gpar(fill = "blue", alpha = 0.5, col = NA), 
      h.even.alpha = 0.5, 
      equal.width = FALSE, 
      show.rownames = FALSE, 
      show.vlines = TRUE, 
      padding.h = unit(15, "mm"), 
      padding.v = unit(8, "mm") 
      ) 

इस साजिश उत्पन्न करता है आवेदन:

enter image description here

उत्तर

41

मेज के पास पाठ को आप टैब का मूल्यांकन करना चाहते हैं करने के लिए le आकार पहले

library(gridExtra) 
d <- head(iris) 
table <- tableGrob(d) 

grid.newpage() 
h <- grobHeight(table) 
w <- grobWidth(table) 
title <- textGrob("Title", y=unit(0.5,"npc") + 0.5*h, 
        vjust=0, gp=gpar(fontsize=20)) 
footnote <- textGrob("footnote", 
        x=unit(0.5,"npc") - 0.5*w, 
        y=unit(0.5,"npc") - 0.5*h, 
        vjust=1, hjust=0,gp=gpar(fontface="italic")) 
gt <- gTree(children=gList(table, title, footnote)) 
grid.draw(gt) 

संपादित करें (17/07/2015) gridExtra> = 2.0.0 के साथ, इस दृष्टिकोण नहीं रह उपयुक्त है। tableGrob अब एक gtable देता है, जिसे अधिक आसानी से अनुकूलित किया जा सकता है।

library(gridExtra) 
d <- head(iris) 
table <- tableGrob(d) 

library(grid) 
library(gtable) 

title <- textGrob("Title",gp=gpar(fontsize=50)) 
footnote <- textGrob("footnote", x=0, hjust=0, 
        gp=gpar(fontface="italic")) 

padding <- unit(0.5,"line") 
table <- gtable_add_rows(table, 
         heights = grobHeight(title) + padding, 
         pos = 0) 
table <- gtable_add_rows(table, 
         heights = grobHeight(footnote)+ padding) 
table <- gtable_add_grob(table, list(title, footnote), 
         t=c(1, nrow(table)), l=c(1,2), 
         r=ncol(table)) 
grid.newpage() 
grid.draw(table) 
+0

धन्यवाद, कि समस्या का हल और मुझे लगता है कि से कई चीजें सीखा है। मुझे लगता है कि मैं व्यूपोर्ट्स में टेबल और टेक्स्ट ग्रब्स का भी उपयोग कर सकता हूं और इसी तरह? – SlowLearner

+0

सुनिश्चित करें, आप gtree – baptiste

+0

पर यह vp दे सकते हैं, लेकिन यह उपयोग करने के बाद तालिका का रंग चला गया है। मैं केवल शीर्षक के लिए रंग कर सकते हैं। – lulumink

2

आप सिर्फ शीर्षक (कोई फुटनोट) चाहते हैं, यहाँ @ बैप्टिस्ट के उदाहरण का एक सरलीकृत संस्करण है:

title <- textGrob("Title", gp = gpar(fontsize = 50)) 
padding <- unit(0.5,"line") 
table <- gtable_add_rows(
    table, heights = grobHeight(title) + padding, pos = 0 
) 
table <- gtable_add_grob(
    table, list(title), 
    t = 1, l = 1, r = ncol(table) 
) 
grid.newpage() 
grid.draw(table) 
संबंधित मुद्दे