2017-12-08 9 views
0

Ich würde wirklich gerne eine DYGraph, die mit einem Kontrollkästchen, um die Y-Achse zu Logscale wechseln kommt. Ich weiß, dass ich das mit shiny machen kann, aber ich kann so ziemlich alles, was ich für dieses Projekt brauche, mit rmarkdown ohne shiny machen, was mir erlaubt, .html zu liefern, ohne einen glänzenden Server einrichten zu müssen.Toggle Logscale Option für DYGraph in Rmarkdown

Ich weiß, es ist nicht auf der dygraph Seite der Dinge kompliziert http://dygraphs.com/options.html#logscale

Und ich denke, rmarkdown sicherlich flexibel genug ist, es zu tun http://livefreeordichotomize.com/2017/01/24/custom-javascript-visualizations-in-rmarkdown/

Aber wie?

+0

Ich muss immer noch einen glänzenden Server einrichten, oder? –

+0

"Diese Dokumente kombinieren die Aussagekraft von R Markdown mit der Interaktivität von Shiny. Diese Dokumente können lokal auf dem Desktop ausgeführt oder auf ShinyApps oder Shiny Server v1.2 bereitgestellt werden (weitere Informationen finden Sie im Abschnitt zur Implementierung)." http://rmarkdown.rstudio.com/authoring_shiny.html –

Antwort

1

Sie könnten {.tabset} verwenden und beide Skalen separat darstellen.

--- 
output: 
    html_document: 
    code_folding: hide 
    theme: flatly 
    toc: yes 
    toc_depth: 3 
    toc_float: yes 
--- 

```{r setup, include=FALSE} 
library(tidyr) 
library(dplyr) 
library(tibble) 
library(dygraphs) 
``` 


# Plots {.tabset .tabset-fade .tabset-pills} 


## Normal Y 

```{r plot_norm} 
dygraph(AirPassengers, main = "Airline Passengers/Month") %>% 
    dyAxis("x", drawGrid = FALSE) %>% 
    dyAxis("y", label = "Passengers (Thousands)") %>% 
    dyOptions(includeZero = TRUE, 
      axisLineColor = "navy", 
      gridLineColor = "lightblue") 
``` 


## Log Y 

```{r plot_log} 
dygraph(AirPassengers, main = "Airline Passengers/Month") %>% 
    dyAxis("x", drawGrid = FALSE) %>% 
    dyAxis("y", label = "Passengers (Thousands)", logscale = TRUE) %>% 
    dyOptions(logscale = TRUE, 
      axisLineColor = "navy", 
      gridLineColor = "lightblue") 
```