2015-04-17 7 views
6

का उपयोग कर आर में एक बारप्लॉट बनाएं क्या आर में डीग्राफ के साथ विभिन्न प्रकार के भूखंडों का उपयोग करने का कोई तरीका है, जैसे कि डायग्राफ वेबसाइट पर http://dygraphs.com/tests/plotters.html? आर का उपयोग करते समय इन तक पहुंचने का कोई तरीका है? आर वेबसाइट के लिए डाइग्राफ से लिया गया एक साधारण उदाहरण इस तरह दिखेगा:dygraphs पैकेज

library(dygraphs) 
library(dplyr) 
lungDeaths <- cbind(mdeaths, fdeaths) 
dygraph(lungDeaths) 
# How to choose a different type of plot? 

/संपादित करें। इसलिए मुझे पता चला कि आप कस्टम प्लॉटर्स का उपयोग डायग्राफ के साथ यहां कर सकते हैं जैसे: http://blog.dygraphs.com/2012/08/introducing-custom-plotters.html। आर में पाने के लिए कोई रास्ता है?

+0

'ggplot2' पैकेज को आजमाएं। –

+0

मुझे ggplot2 पता है, लेकिन मैं इसे एक HTML फ़ाइल में एक इंटरैक्टिव तरीके से उपयोग करना चाहता हूं। सिंक्रनाइज़ेशन सुविधा भी मेरे लिए बहुत आकर्षक है! मैं इस तरह के डिग्राफ द्वारा प्रदान की गई रेंज चयनकर्ता बनाना चाहता हूं: http://rstudio.github.io/dygraphs/gallery-range-selector.html – pfuhlert

उत्तर

6

मैंने बार चार्ट बनाने के लिए डाइऑप्शन में प्लॉटटर का उपयोग किया। मैंने बस dygraphs ब्लॉग से barChartPlotter फ़ंक्शन की प्रतिलिपि बनाई है। http://blog.dygraphs.com/2012/08/introducing-custom-plotters.html

library(xts) 
library(dygraphs) 
library(lubridate) 

graph_data <- xts(x = c(1,2,3,4), order.by = lubridate::ymd(c("2015-01-01", "2015-02-01", "2015-03-01", "2015-04-01"))) 
names(graph_data) <- "value" 

dygraph(graph_data) %>% 
    dyOptions(useDataTimezone = TRUE, plotter = 
       "function barChartPlotter(e) { 
       var ctx = e.drawingContext; 
       var points = e.points; 
       var y_bottom = e.dygraph.toDomYCoord(0); // see  http://dygraphs.com/jsdoc/symbols/Dygraph.html#toDomYCoord 

       // This should really be based on the minimum gap 
       var bar_width = 2/3 * (points[1].canvasx - points[0].canvasx); 
       ctx.fillStyle = e.color; 

       // Do the actual plotting. 
       for (var i = 0; i < points.length; i++) { 
        var p = points[i]; 
        var center_x = p.canvasx; // center of the bar 

        ctx.fillRect(center_x - bar_width/2, p.canvasy, 
           bar_width, y_bottom - p.canvasy); 
        ctx.strokeRect(center_x - bar_width/2, p.canvasy, 
           bar_width, y_bottom - p.canvasy); 
       } 
       }") 
+0

वाह बहुत अच्छा है! धन्यवाद। मुझे एनवीडी 3 के साथ स्टॉक मिला, लेकिन यह मेरे प्रश्न का सही जवाब है। – pfuhlert

+0

पिछले सोमवार को मेरे पास एक ही समस्या थी और सोचा कि किसी और को यह उपयोगी लगेगा। एनवीडी 3 बहुत अच्छा है! – KERO

2

rCharts और NVD3 आज़माएं। ग्राफ में ज़ूम करना संभव नहीं है, लेकिन आईएमओ यह अधिक फैंसी है और कुछ चयन सुविधाएं शांत हैं।

+0

ठीक है मैं एनवीडी 3 का उपयोग कर समाप्त हुआ हूं इसलिए आपके उत्तर के लिए धन्यवाद। मैं इसे समाधान के रूप में चुनूंगा। – pfuhlert