2017-09-18 11 views
5

मैं एक चमकदार ऐप के लिए एक साजिश ग्राफ बनाने की कोशिश कर रहा हूं। मैं पहलूदार भूखंडों के कुछ लेआउट के साथ एक मुद्दे में भाग रहा हूँ। जब भी चार पहलू होते हैं और वे 2x2 ग्रिड में होते हैं, तो नीचे बाएं पहलू किसी भी डेटा को प्रदर्शित नहीं करता है, भले ही डेटा ggplot आकृति में है। यह तब भी होता है जब 3x2 ग्रिड में 6 पहलू होते हैं, नीचे नीचे छोड़ा जाता है। plotly ggplot examples page पर उदाहरण 2x2 ग्रिड और डेटा प्रदर्शित होने के साथ कई उदाहरण दिखाते हैं। मुझे यकीन नहीं है कि मुद्दा क्या है। किसी भी प्रकार की मदद की बेहद सराहना की जाती है।ggplotly एकल पहलू से डेटा हटा रहा है

कोड:

library(ggplot2) 
library(dplyr) 
library(plotly) 

data %>% 
    filter(!is.na(result)) %>% 
    ggplot(aes(date_time, result)) + 
    facet_wrap(~group, scales = "free_y") + 
    geom_point() + 
    geom_line() 


ggplotly() 

ggplot उत्पादन: <code>ggplot</code> output

ggplotly उत्पादन: <code>ggplotly</code> output

डाटा:

data <- structure(list(group = c("w", "w", "w", "w", "w", "w", "w", 
           "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", 
           "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", "w", 
           "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", 
           "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", "y", 
           "y", "y", "y", "y", "y", "y", "y", "x", "x", "x", "x", "x", "x", 
           "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", 
           "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", 
           "x", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", 
           "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", 
           "z", "z", "z", "z", "z", "z", "z", "z"), 
        date_time = structure(c(1501581060, 1501668000, 1501752000, 
              1501837740, 1502101200, 1502184600, 1502271840, 
              1502357280, 1502442720, 1502701860, 1502789280, 
              1502876340, 1502961600, 1503047640, 1503305520, 
              1503394200, 1503480900, 1503567600, 1503651300, 
              1503915120, 1503997800, 1504086300, 1504171920, 
              1504259100, 1504607100, 1504691040, 1504777500, 
              1504865820, 1505122680, 1505211600, 1505296560, 
              1505382720, 1505470140, 1501581060, 1501668000, 
              1501752000, 1501837740, 1502101200, 1502184600, 
              1502271840, 1502357280, 1502442720, 1502701860, 
              1502789280, 1502876340, 1502961600, 1503047640, 
              1503305520, 1503394200, 1503480900, 1503567600, 
              1503651300, 1503915120, 1503997800, 1504086300, 
              1504171920, 1504259100, 1504607100, 1504691040, 
              1504777500, 1504865820, 1505122680, 1505211600, 
              1505296560, 1505382720, 1505470140, 1501581060, 
              1501668000, 1501752000, 1501837740, 1502101200, 
              1502184600, 1502271840, 1502357280, 1502442720, 
              1502701860, 1502789280, 1502876340, 1502961600, 
              1503047640, 1503305520, 1503394200, 1503480900, 
              1503567600, 1503651300, 1503915120, 1503997800, 
              1504086300, 1504171920, 1504259100, 1504607100, 
              1504691040, 1504777500, 1504865820, 1505122680, 
              1505211600, 1505296560, 1505382720, 1505470140, 
              1501581060, 1501668000, 1501752000, 1501837740, 
              1502101200, 1502184600, 1502271840, 1502357280, 
              1502442720, 1502701860, 1502789280, 1502876340, 
              1502961600, 1503047640, 1503305520, 1503394200, 
              1503480900, 1503567600, 1503651300, 1503915120, 
              1503997800, 1504086300, 1504171920, 1504259100, 
              1504607100, 1504691040, 1504777500, 1504865820, 
              1505122680, 1505211600, 1505296560, 1505382720, 
              1505470140), 
             class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
        result = c(2.1, 1.75, 1.65, 1.65, 1.75, 1.65, 1.3, 1.65, 1.9, 1.6, 1.65, 
           1.35, 1.6, 1.85, 2.05, 1.95, 2, 1.95, 1.9, 1.9, 2.05, 2, 2, 
           2, 2.1, 2.1, 2, 2.05, 2.05, 2.3, 2.2, 2, NA, 7.14, 7.1, 7.09, 
           7.09, 7.13, 7.12, 7.13, 7.07, 7.04, 7.06, 7.12, 7.08, 7.06, 
           7.07, 7.05, 7.05, 7.1, 7.09, 7.06, 7.18, 7.16, 7.11, 7.17, 
           7.14, 7.13, 7.08, 7.11, 7.09, 7.12, 7.05, 7.08, 7.02, 7.12, 
           0.214, 0.181, 0.357, 0.49, 0.294, 0.369, 0.406, 0.325, 0.197, 
           0.36, 0.358, 0.408, 0.37, 0.254, 0.24, 0.178, 0.201, 0.166, 0.203, 
           0.163, 0.147, 0.177, 0.155, 0.177, 0.133, 0.133, 0.182, 0.203, 
           0.161, 0.151, 0.171, 0.117, NA, 26, 26, 26, 26, 25, 26, 25, 26, 
           26, 26, 26, 25, 26, 26, 25, 26, 26, 26, 26, 26, 26, 26, 26, 25, 
           25, 24, 24, 24, 23, 23, 23, 24, 23)), 
       .Names = c("group", "date_time", "result"), 
       class = c("tbl_df", "tbl", "data.frame"), 
       row.names = c(NA, -132L)) 

उत्तर

4

शायद यह ggplotly में एक बग है।
एक समाधान scales="free"facet_wrap के अंदर और फिर 4 प्लॉट्स के लिए सामान्य एक्स अक्ष को मैन्युअल रूप से परिभाषित करने के लिए उपयोग करना है।

p <- data %>% 
    filter(!is.na(result)) %>% 
    ggplot(aes(date_time, result)) + 
    facet_wrap(~group, scales = "free") + 
    geom_point() + 
    geom_line() 

g <- plotly_build(p) 
# Set "x3" axis as common x-axis of Plot 1 and 3 
g$x$data[[1]]$xaxis <- "x3" 
# Set "x4" axis as common x-axis of Plot 2 and 4 
g$x$data[[2]]$xaxis <- "x4" 
print(g) 

enter image description here अन्य समाधान here और here हैं।

+1

उत्तर के लिए धन्यवाद, क्या कोई निश्चित एक्स अक्ष के साथ ऐसा करने का कोई तरीका नहीं है? मैं डेटा को तुलना के लिए दिनांक और समय से गठबंधन करना पसंद करूंगा। – tbradley

+0

इस उदाहरण में, हाँ, डेटा काफी करीब है। लेकिन यदि आप सही भूखंडों पर बारीकी से देखते हैं, तो आप देखेंगे कि "15 सितंबर" के लिए ग्रिडलाइन बिल्कुल ठीक नहीं है। यदि समस्या समूह की तारीखें बिल्कुल समान नहीं हैं, तो यह समस्या अधिक समस्या होगी, जो मेरे वास्तविक डेटा – tbradley

+0

के साथ कोई समस्या हो सकती है, आपको बहुत धन्यवाद! – tbradley

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