2016-05-03 11 views
6

में अंदर` `Rmd` फ़ाइल में for` पाश से ploted नहीं है मैं आर markdown (.Rmd) फ़ाइल में अंदर for पाश से इंटरैक्टिव ggplotly रेखांकन की श्रृंखला साजिश की कोशिश की। मेरी .Rmd फ़ाइल की सामग्री:इंटरएक्टिव `ggplotly` ग्राफ आर

--- 
title: "Untitled" 
output: html_document 
--- 

```{r} 
library(ggplot2) # for plots 
library(plotly) # for interactive plots 

# Convert 4 variables to factor variables: 
factor_vars <- c("vs", "am", "gear", "carb") 
mtcars[factor_vars] <- data.frame(Map(as.factor, mtcars[factor_vars])) 



for (VAR in factor_vars) { 
    cat(paste("Factor variable:", VAR)) 
    # Contents of "VAR" changes inside the loop 
    p <- ggplot(mtcars, aes_string(x = "mpg", y = "wt", color = VAR)) + geom_point() 

    # Print an interactive plot 
    print(ggplotly(p)) 
} 

``` 

मैं RStudio में Knit HTML बटन पुश। दुर्भाग्यवश, .html फ़ाइल में कोई भी इंटरैक्टिव प्लॉट दिखाई नहीं देता है।

प्रश्न: ग्राफ़ क्यों प्लॉट नहीं किए जाते हैं? और मैं Rmd फ़ाइल में for लूप के साथ संयोजन में इंटरैक्टिव प्लॉट कैसे बना सकता हूं?

पेज। यदि मैं print(ggplotly(p)) के बजाय print(p) का उपयोग करता हूं, ggplot2 प्लॉट्स .html फ़ाइल में दिखाई देते हैं।

उत्तर

10

इस github issue के आधार पर, आप इस तरह कुछ करने के लिए सक्षम होना चाहिए:

--- 
    title: "Untitled" 
    output: html_document 
    --- 

    ```{r, message = F} 
    library(ggplot2) # for plots 
    library(plotly) # for interactive plots 

    # Convert 4 variables to factor variables: 
    factor_vars <- c("vs", "am", "gear", "carb") 
    mtcars[factor_vars] <- data.frame(Map(as.factor, mtcars[factor_vars])) 

    plt <- htmltools::tagList() 
    i <- 1 
    for (VAR in factor_vars) { 

     # Contents of "VAR" changes inside the loop 
     p <- ggplot(mtcars, aes_string(x = "mpg", y = "wt", color = VAR)) + 
     geom_point() + 
     ggtitle(paste("Factor variable:", VAR)) 


     # Print an interactive plot 
     # Add to list 
     plt[[i]] <- as.widget(ggplotly(p)) 
     i <- i + 1 
    } 

    ``` 

    ```{r, echo = F} 
    plt 
    ``` 
+0

अच्छा workarround। दुर्भाग्यवश, मैं इसे अपने वर्तमान स्वचालित विश्लेषण में उपयोग करने में सक्षम नहीं हूं, जहां 'फॉर लूप प्लॉट्स के प्रत्येक पुनरावृत्ति में टेबल के बाद होते हैं, कुछ सांख्यिकीय परीक्षण होते हैं। एक ही स्थान पर सभी भूखंडों को प्रिंट करना भ्रमित होगा। मैंने देखा, 'पैंडर() 'का परिणाम भी' लूप 'के अंदर से प्रिंट नहीं करता है। क्या यह 'बुनाई' में कुछ बग है? – Vilmantas

+0

ऐसा लगता है कि आपने जिथब रेपो पर भी अपनी चिंता उठाई है। यदि आप इस पर timelyportfolio के साथ काम करते हैं तो शायद सबसे अच्छा। – royr2

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