diff --git a/articles/get-started.html b/articles/get-started.html index 943a1ca..b29e039 100644 --- a/articles/get-started.html +++ b/articles/get-started.html @@ -66,7 +66,7 @@

Get started with esquisse

- Source: vignettes/get-started.Rmd + Source: vignettes/get-started.Rmd
get-started.Rmd
diff --git a/articles/shiny-usage.html b/articles/shiny-usage.html index edf5b93..56342be 100644 --- a/articles/shiny-usage.html +++ b/articles/shiny-usage.html @@ -66,7 +66,7 @@

Shiny usage

- Source: vignettes/shiny-usage.Rmd + Source: vignettes/shiny-usage.Rmd
shiny-usage.Rmd
diff --git a/authors.html b/authors.html index 58875c2..f62efae 100644 --- a/authors.html +++ b/authors.html @@ -70,7 +70,7 @@

Authors

Citation

-

Source: DESCRIPTION

+

Source: DESCRIPTION

Meyer F, Perrier V (2024). esquisse: Explore and Visualize Your Data Interactively. diff --git a/news/index.html b/news/index.html index b914ba8..1e0366e 100644 --- a/news/index.html +++ b/news/index.html @@ -33,11 +33,11 @@

-

esquisse 2.0.1

+

esquisse 2.0.1

CRAN release: 2024-09-18

  • Fixed bug with Use Specific Colors when mapping a variable to color #276.
  • Fixed bug with n_geoms different between ui and server #272.
  • Update manual Chinese translation in cn.csv by @YaoxiangLi in #273.
  • diff --git a/pkgdown.yml b/pkgdown.yml index 4416fbe..9f220c3 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -4,7 +4,7 @@ pkgdown_sha: ~ articles: get-started: get-started.html shiny-usage: shiny-usage.html -last_built: 2024-09-18T14:04Z +last_built: 2024-09-18T15:49Z urls: reference: https://dreamrs.github.io/esquisse/reference article: https://dreamrs.github.io/esquisse/articles diff --git a/reference/bs_theme_esquisse.html b/reference/bs_theme_esquisse.html index ccae759..b6e8254 100644 --- a/reference/bs_theme_esquisse.html +++ b/reference/bs_theme_esquisse.html @@ -33,7 +33,7 @@
    diff --git a/reference/build_aes.html b/reference/build_aes.html index e26b46c..6cbed09 100644 --- a/reference/build_aes.html +++ b/reference/build_aes.html @@ -33,7 +33,7 @@
    diff --git a/reference/dragulaInput.html b/reference/dragulaInput.html index d5d2ec5..e483113 100644 --- a/reference/dragulaInput.html +++ b/reference/dragulaInput.html @@ -33,7 +33,7 @@
    diff --git a/reference/dropInput.html b/reference/dropInput.html index 7aa5a35..cf0037d 100644 --- a/reference/dropInput.html +++ b/reference/dropInput.html @@ -33,7 +33,7 @@
    diff --git a/reference/esquisse-deprecated.html b/reference/esquisse-deprecated.html index 2ffc9a8..41624f4 100644 --- a/reference/esquisse-deprecated.html +++ b/reference/esquisse-deprecated.html @@ -33,7 +33,7 @@
    diff --git a/reference/esquisse-exports.html b/reference/esquisse-exports.html index 151f3ff..1850365 100644 --- a/reference/esquisse-exports.html +++ b/reference/esquisse-exports.html @@ -33,7 +33,7 @@
    diff --git a/reference/esquisse-module.html b/reference/esquisse-module.html index 48a2dcd..84d9b3b 100644 --- a/reference/esquisse-module.html +++ b/reference/esquisse-module.html @@ -33,7 +33,7 @@
    diff --git a/reference/esquisse.html b/reference/esquisse.html index e0a39fe..6800806 100644 --- a/reference/esquisse.html +++ b/reference/esquisse.html @@ -37,7 +37,7 @@
    diff --git a/reference/esquisser.html b/reference/esquisser.html index 5d2cc9e..e69bd10 100644 --- a/reference/esquisser.html +++ b/reference/esquisser.html @@ -35,7 +35,7 @@
    diff --git a/reference/geoms.html b/reference/geoms.html index 983ad7a..439a3c5 100644 --- a/reference/geoms.html +++ b/reference/geoms.html @@ -33,7 +33,7 @@
    diff --git a/reference/ggcall.html b/reference/ggcall.html index 7ffc6a0..f487941 100644 --- a/reference/ggcall.html +++ b/reference/ggcall.html @@ -33,7 +33,7 @@
    diff --git a/reference/ggplot-output.html b/reference/ggplot-output.html index 593f146..10084b9 100644 --- a/reference/ggplot-output.html +++ b/reference/ggplot-output.html @@ -33,7 +33,7 @@
    diff --git a/reference/ggplot_to_ppt.html b/reference/ggplot_to_ppt.html index 8b6b727..fc5ec0d 100644 --- a/reference/ggplot_to_ppt.html +++ b/reference/ggplot_to_ppt.html @@ -35,7 +35,7 @@
    diff --git a/reference/input-colors.html b/reference/input-colors.html index c732664..6cbc9b2 100644 --- a/reference/input-colors.html +++ b/reference/input-colors.html @@ -33,7 +33,7 @@
    diff --git a/reference/match_geom_args.html b/reference/match_geom_args.html index 3b39fba..e72daa0 100644 --- a/reference/match_geom_args.html +++ b/reference/match_geom_args.html @@ -33,7 +33,7 @@
    diff --git a/reference/safe_ggplot.html b/reference/safe_ggplot.html index d4162d3..e343b66 100644 --- a/reference/safe_ggplot.html +++ b/reference/safe_ggplot.html @@ -33,7 +33,7 @@
    diff --git a/reference/save-ggplot-module.html b/reference/save-ggplot-module.html index 51ec29b..beaf316 100644 --- a/reference/save-ggplot-module.html +++ b/reference/save-ggplot-module.html @@ -33,7 +33,7 @@
    diff --git a/reference/updateDragulaInput.html b/reference/updateDragulaInput.html index 3b6f662..7d391ff 100644 --- a/reference/updateDragulaInput.html +++ b/reference/updateDragulaInput.html @@ -33,7 +33,7 @@
    diff --git a/reference/updateDropInput.html b/reference/updateDropInput.html index 0567a11..b1ac02a 100644 --- a/reference/updateDropInput.html +++ b/reference/updateDropInput.html @@ -33,7 +33,7 @@
    diff --git a/reference/which_pal_scale.html b/reference/which_pal_scale.html index 01ff0de..af66aba 100644 --- a/reference/which_pal_scale.html +++ b/reference/which_pal_scale.html @@ -33,7 +33,7 @@
    diff --git a/search.json b/search.json index 76cae80..afb602c 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"launch-the-addin","dir":"Articles","previous_headings":"","what":"Launch the addin","title":"Get started with esquisse","text":"RStudio, can use Addins menu : R console : use data.frame default, using Addins menu highlight cursor data.frame source editor launching addin. Otherwise, pass data.frame first argument function :","code":"esquisser() esquisser(mtcars)"},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"import-data-into-esquisse","dir":"Articles","previous_headings":"","what":"Import data into {esquisse}","title":"Get started with esquisse","text":"don’t used data.frame launching addin, window import data appear. feature comes package {datamods}, can find documentation .","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"create-a-plot","dir":"Articles","previous_headings":"","what":"Create a plot","title":"Get started with esquisse","text":"main interface interesting part addin (example , use penguins dataset {palmerpenguins}) : can select aesthetics used clicking gear icon top right corner, drag--drop aesthetics boxes create plot: geometry automatically picked represent data, according data type. can select geom button top right corner :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"controls","dir":"Articles","previous_headings":"","what":"Controls","title":"Get started with esquisse","text":"Five menus plot area available set plot parameters, filter data retrieve code generate plot.","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"labels-titles","dir":"Articles","previous_headings":"Controls","what":"Labels & titles","title":"Get started with esquisse","text":"menu allow set plot’s title, subtitle, caption, axis aesthetics labels :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"plot-options","dir":"Articles","previous_headings":"Controls","what":"Plot options","title":"Get started with esquisse","text":"can modify plot parameters, options available menu depends type plot :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"appearance","dir":"Articles","previous_headings":"Controls","what":"Appearance","title":"Get started with esquisse","text":"can modify colors used global theme :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"filter","dir":"Articles","previous_headings":"Controls","what":"Filter","title":"Get started with esquisse","text":"Widgets interactively filter data used plot : filter module available package {datamods}. code used filter data available following menu.","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"code","dir":"Articles","previous_headings":"Controls","what":"Code","title":"Get started with esquisse","text":"menu, can retrieve code used produce plot, well code used filter data. can copy code clipboard, insert current script.","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"export","dir":"Articles","previous_headings":"","what":"Export","title":"Get started with esquisse","text":"can save plot created various format clicking button plot area’s top-right corner: “options”, can access new window parameters export plot:","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"addin-options","dir":"Articles","previous_headings":"","what":"Addin options","title":"Get started with esquisse","text":"default, esquisse launched dialog window (RStudio), can choose use browser prefer, Viewer pane. can set display mode option (.Rprofile example) :","code":"esquisser(viewer = \"browser\") esquisser(viewer = \"pane\") options(\"esquisse.viewer\" = \"browser\")"},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"internationalization","dir":"Articles","previous_headings":"Addin options","what":"Internationalization","title":"Get started with esquisse","text":"Currently can use {esquisse} following language: english (default), french (\"fr\"), macedonian (\"mk\"), albanian (\"sq\"). Activate : want another language supported, can submit Pull Request add CSV file like one used french (file located inst/i18n folder package, can see GitHub). See {datamods} vignette topic.","code":"library(esquisse) set_i18n(\"fr\") esquisser()"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"use-esquisse-as-a-shiny-module","dir":"Articles","previous_headings":"","what":"Use esquisse as a Shiny module","title":"Shiny usage","text":"{esquisse} built Shiny modules (see article reference), can use {esquisse} directly Shiny application : Result looks like : output module reactiveValues 3 slots : code_plot : code generate plot. code_filters : list length two code reproduce filters. data : data.frame used plot (filters applied).","code":"library(esquisse) library(shiny) library(ggplot2) ui <- fluidPage( titlePanel(\"Use esquisse as a Shiny module\"), sidebarLayout( sidebarPanel( radioButtons( inputId = \"data\", label = \"Select data to use:\", choices = c(\"mpg\", \"diamonds\", \"economics\") ) ), mainPanel( tabsetPanel( tabPanel( title = \"esquisse\", esquisse_ui( id = \"esquisse\", header = FALSE # dont display gadget title ) ), tabPanel( title = \"output\", tags$b(\"Code:\"), verbatimTextOutput(\"code\"), tags$b(\"Filters:\"), verbatimTextOutput(\"filters\"), tags$b(\"Data:\"), verbatimTextOutput(\"data\") ) ) ) ) ) server <- function(input, output, session) { data_r <- reactiveValues(data = iris, name = \"iris\") observe({ data_r$data <- get(input$data) data_r$name <- input$data }) results <- esquisse_server( id = \"esquisse\", data_rv = data_r ) output$code <- renderPrint({ results$code_plot }) output$filters <- renderPrint({ results$code_filters }) output$data <- renderPrint({ str(results$data) }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"module-for-saving-a-ggplot-object","dir":"Articles","previous_headings":"","what":"Module for saving a ggplot object","title":"Shiny usage","text":"module allow save ggplot object various format resize : can call module server display modal window (’s also possible display directly UI): See ?\"save-ggplot-module\" complete example.","code":"function(input, output, session) { observeEvent(input$save, { # actionButton to trigger modal save_ggplot_modal(\"ID\", \"Save plot\") # launch modal }) save_ggplot_server(\"ID\", rv) # rv is a reactiValues with a slot 'plot' }"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"module-to-render-a-plot-and-add-export-options","dir":"Articles","previous_headings":"","what":"Module to render a plot and add export options","title":"Shiny usage","text":"Add menu directly export plot, can also launch module controls (height, width, filename) clicking “options”:","code":"library(shiny) library(ggplot2) library(esquisse) ui <- fluidPage( tags$h2(\"ggplot output\"), selectInput(\"var\", \"Variable:\", names(economics)[-1]), ggplot_output(\"MYID\", width = \"600px\") ) server <- function(input, output, session) { render_ggplot(\"MYID\", { ggplot(economics) + geom_line(aes(date, !!sym(input$var))) + theme_minimal() + labs( title = \"A cool chart made with ggplot2\", subtitle = \"that you can export in various format\" ) }) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"input-widgets","dir":"Articles","previous_headings":"","what":"Input widgets","title":"Shiny usage","text":"drag--drop widget along button select geom color/palette picker exported:","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"dragulainput","dir":"Articles","previous_headings":"Input widgets","what":"dragulaInput","title":"Shiny usage","text":"","code":"ui <- fluidPage( tags$h2(\"Demo dragulaInput\"), tags$br(), dragulaInput( inputId = \"dad\", sourceLabel = \"Source\", targetsLabels = c(\"Target 1\", \"Target 2\"), choices = names(iris), width = \"400px\" ), verbatimTextOutput(outputId = \"result\") ) server <- function(input, output, session) { output$result <- renderPrint(str(input$dad)) } shinyApp(ui = ui, server = server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"dropinput","dir":"Articles","previous_headings":"Input widgets","what":"dropInput","title":"Shiny usage","text":"widget used select geom esquisser addin. can use images icons example:","code":"ui <- fluidPage( tags$h2(\"Drop Input\"), dropInput( inputId = \"mydrop\", choicesNames = tagList( list(icon(\"home\"), style = \"width: 100px;\"), list(icon(\"flash\"), style = \"width: 100px;\"), list(icon(\"cogs\"), style = \"width: 100px;\"), list(icon(\"fire\"), style = \"width: 100px;\"), list(icon(\"users\"), style = \"width: 100px;\"), list(icon(\"info\"), style = \"width: 100px;\") ), choicesValues = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\"), dropWidth = \"220px\" ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$mydrop }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"colorpicker","dir":"Articles","previous_headings":"Input widgets","what":"colorPicker","title":"Shiny usage","text":"select menu choose one several colors:","code":"ui <- fluidPage( tags$h2(\"Color Picker\"), colorPicker( inputId = \"col\", label = \"Choose a color:\", choices = scales::brewer_pal(palette = \"Dark2\")(8), textColor = \"white\" ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$col }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"palettepicker","dir":"Articles","previous_headings":"Input widgets","what":"palettePicker","title":"Shiny usage","text":"select menu choose color palette:","code":"library(scales) ui <- fluidPage( tags$h2(\"Palette Picker\"), palettePicker( inputId = \"pal\", label = \"Choose a palette\", choices = list( \"Viridis\" = list( \"viridis\" = viridis_pal(option = \"viridis\")(10), \"magma\" = viridis_pal(option = \"magma\")(10), \"inferno\" = viridis_pal(option = \"inferno\")(10), \"plasma\" = viridis_pal(option = \"plasma\")(10), \"cividis\" = viridis_pal(option = \"cividis\")(10) ), \"Brewer\" = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Paired\" = brewer_pal(palette = \"Paired\")(8), \"Set1\" = brewer_pal(palette = \"Set1\")(8) ) ), textColor = c( rep(\"white\", 5), rep(\"black\", 4) ) ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$pal }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Fanny Meyer. Author. Victor Perrier. Author, maintainer. Ian Carroll. Contributor. Faceting support Xiangnan Dang. Contributor. Facets rows cols, X/Y limits Nicolas Bevacqua. Copyright holder. author dragula JavaScript library Daybrush (Younkue Choi). Copyright holder. author moveable JavaScript library Zeno Rocha. Copyright holder. author clipboard JavaScript library","code":""},{"path":"https://dreamrs.github.io/esquisse/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Meyer F, Perrier V (2024). esquisse: Explore Visualize Data Interactively. R package version 2.0.1, https://github.com/dreamRs/esquisse, https://dreamrs.github.io/esquisse/.","code":"@Manual{, title = {esquisse: Explore and Visualize Your Data Interactively}, author = {Fanny Meyer and Victor Perrier}, year = {2024}, note = {R package version 2.0.1, https://github.com/dreamRs/esquisse}, url = {https://dreamrs.github.io/esquisse/}, }"},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"esquisse-","dir":"","previous_headings":"","what":"Explore and Visualize Your Data Interactively","title":"Explore and Visualize Your Data Interactively","text":"Try online : https://dreamrs.shinyapps.io/esquisse/ addin allows interactively explore data visualizing ggplot2 package. allows draw bar plots, curves, scatter plots, histograms, boxplot sf objects, export graph retrieve code reproduce graph. See online documentation : https://dreamrs.github.io/esquisse/index.html Use esquisse online : https://dreamrs.shinyapps.io/esquisse/ find bugs, please open issue","code":""},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Explore and Visualize Your Data Interactively","text":"Install CRAN : install development version GitHub : launch addin via RStudio menu esquisse::esquisser().","code":"install.packages(\"esquisse\") remotes::install_github(\"dreamRs/esquisse\")"},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"esquisse-addin","dir":"","previous_headings":"","what":"esquisse addin","title":"Explore and Visualize Your Data Interactively","text":"gif made ❤️ @mfanny removed, meantime {esquisse} evolved, latest version now looks like:","code":"esquisse::esquisser() # or with your data: esquisse::esquisser(palmerpenguins::penguins)"},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"internationalization","dir":"","previous_headings":"esquisse addin","what":"Internationalization","title":"Explore and Visualize Your Data Interactively","text":"Currently can use {esquisse} following language: english (default), french, macedonian, brazilian portuguese, albanian, chinese, spanish, turkish, korean, polish, japanese, german. want another language supported, can submit Pull Request add CSV file like one used french (file located inst/i18n folder package, can see GitHub). See {datamods} vignette topic.","code":"library(esquisse) set_i18n(\"fr\") esquisser()"},{"path":"https://dreamrs.github.io/esquisse/reference/bs_theme_esquisse.html","id":null,"dir":"Reference","previous_headings":"","what":"Bootstrap Theme for Esquisse — bs_theme_esquisse","title":"Bootstrap Theme for Esquisse — bs_theme_esquisse","text":"Bootstrap Theme Esquisse","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/bs_theme_esquisse.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Bootstrap Theme for Esquisse — bs_theme_esquisse","text":"","code":"bs_theme_esquisse()"},{"path":"https://dreamrs.github.io/esquisse/reference/bs_theme_esquisse.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Bootstrap Theme for Esquisse — bs_theme_esquisse","text":"bslib::bs_theme().","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":null,"dir":"Reference","previous_headings":"","what":"Build aesthetics to use in a plot — build_aes","title":"Build aesthetics to use in a plot — build_aes","text":"Build aesthetics use plot","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build aesthetics to use in a plot — build_aes","text":"","code":"build_aes(data, ..., .list = NULL, geom = NULL)"},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build aesthetics to use in a plot — build_aes","text":"data Data use plot. ... Named list aesthetics. .list Alternative ... use preexisting named list. geom Geom use, according geom aesthetics may vary.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build aesthetics to use in a plot — build_aes","text":"expression","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Build aesthetics to use in a plot — build_aes","text":"","code":"# Classic build_aes(iris, x = \"Sepal.Width\") #> Aesthetic mapping: #> * `x` -> `Sepal.Width` build_aes(iris, x = \"Sepal.Width\", y = \"Sepal.Width\") #> Aesthetic mapping: #> * `x` -> `Sepal.Width` #> * `y` -> `Sepal.Width` # Explicit geom : no change build_aes(iris, x = \"Species\", geom = \"bar\") #> Aesthetic mapping: #> * `x` -> `Species` # Little trick if data is count data df <- data.frame( LET = c(\"A\", \"B\"), VAL = c(4, 7) ) build_aes(df, x = \"LET\", y = \"VAL\", geom = \"bar\") #> Aesthetic mapping: #> * `x` -> `LET` #> * `y` -> `VAL` # e.g. : library(ggplot2) ggplot(df) + build_aes(df, x = \"LET\", y = \"VAL\", geom = \"bar\") + geom_bar(stat = \"summary\", fun = \"mean\")"},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Drag And Drop Input Widget — dragulaInput","title":"Drag And Drop Input Widget — dragulaInput","text":"Drag Drop Input Widget","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Drag And Drop Input Widget — dragulaInput","text":"","code":"dragulaInput( inputId, label = NULL, sourceLabel, targetsLabels, targetsIds = NULL, choices = NULL, choiceNames = NULL, choiceValues = NULL, selected = NULL, status = \"primary\", replace = FALSE, copySource = TRUE, badge = TRUE, ncolSource = \"auto\", ncolGrid = NULL, nrowGrid = NULL, dragulaOpts = list(), boxStyle = NULL, targetsHeight = NULL, width = NULL, height = \"100px\" )"},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Drag And Drop Input Widget — dragulaInput","text":"inputId input slot used access value. label Display label control, NULL label. sourceLabel Label display source box targetsLabels Labels target element. targetsIds Ids retrieving values server-side, NULL, default, targetsLabels used removing -alphanumeric characters. choices List values select (elements list named name rather value displayed user). argument provided, choiceNames choiceValues must provided, vice-versa. values strings; types (logicals numbers) coerced strings. choiceNames, choiceValues List names values, respectively, displayed user app correspond choice (reason, choiceNames choiceValues must length). either arguments provided, must provided choices must provided. advantage using named list choices choiceNames allows type UI object passed (tag objects, icons, HTML code, ...), instead just simple text. selected Default selected values. Must list targetsIds names. status choices displayed Bootstrap label, can use Bootstrap status color , NULL. replace choice dragged target container already containing choice, later replaced new one ? copySource replace = TRUE, elements source must copied moved ? badge Displays choices inside Bootstrap badge. Use FALSE want pass custom appearance choiceNames. ncolSource Number columns occupied source, default \"auto\", meaning full row. ncolGrid, nrowGrid Number columns / rows used place source targets boxes, see examples. dragulaOpts Options passed dragula JavaScript library (see online documentation GitHub). Note options moves, accepts invalid must valid JavaScript code evaluated client. boxStyle CSS style string customize source target container. targetsHeight Height target boxes. width Width input. height Height boxes, total input height parameter X 2 (unless targetsHeight set).","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Drag And Drop Input Widget — dragulaInput","text":"UI definition","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Drag And Drop Input Widget — dragulaInput","text":"output server-side list two slots: source targets.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Drag And Drop Input Widget — dragulaInput","text":"","code":"library(shiny) library(esquisse) ui <- fluidPage( tags$h2(\"Demo dragulaInput\"), tags$br(), fluidRow( column( width = 6, dragulaInput( inputId = \"dad1\", label = \"Default:\", sourceLabel = \"Source\", targetsLabels = c(\"Target 1\", \"Target 2\"), choices = month.abb, width = \"100%\" ), verbatimTextOutput(outputId = \"result1\"), tags$br(), dragulaInput( inputId = \"dad3\", label = \"On same row:\", sourceLabel = \"Source\", targetsLabels = c(\"Target 1\", \"Target 2\"), choices = month.abb, width = \"100%\", ncolSource = 1, ncolGrid = 3 ), verbatimTextOutput(outputId = \"result3\") ), column( width = 6, dragulaInput( inputId = \"dad2\", label = \"Two rows:\", sourceLabel = \"Source\", targetsLabels = c(\"x\", \"y\", \"color\", \"fill\", \"size\", \"facet\"), choices = names(mtcars), width = \"100%\", ncolGrid = 3 ), verbatimTextOutput(outputId = \"result2\"), tags$br(), dragulaInput( inputId = \"dad4\", label = \"Two rows not filled:\", sourceLabel = \"Source\", targetsLabels = c(\"x\", \"y\", \"color\", \"fill\", \"size\"), choices = names(mtcars), width = \"100%\", ncolGrid = 3 ), verbatimTextOutput(outputId = \"result4\") ) ) ) server <- function(input, output, session) { output$result1 <- renderPrint(str(input$dad1)) output$result2 <- renderPrint(str(input$dad2)) output$result3 <- renderPrint(str(input$dad3)) output$result4 <- renderPrint(str(input$dad4)) } if (interactive()) shinyApp(ui = ui, server = server)"},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Dropdown Input — dropInput","title":"Dropdown Input — dropInput","text":"dropdown menu selecting value.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dropdown Input — dropInput","text":"","code":"dropInput( inputId, choicesNames, choicesValues, selected = NULL, dropUp = FALSE, dropWidth = NULL, dropMaxHeight = NULL, dropPreScrollable = FALSE, btnClass = \"btn-link\", width = NULL )"},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dropdown Input — dropInput","text":"inputId input slot used access value. choicesNames tagList HTML tags show dropdown menu. choicesValues Vector corresponding choicesNames retrieving values server-side. selected initial selected value, must element choicesValues, default first item choicesValues. dropUp Open menu button rather . dropWidth Width dropdown menu. dropMaxHeight Maximal height menu. dropPreScrollable Force scroll bar appear menu. btnClass Class buttons dropdown menu, default \"btn-link\", can use example \"btn-default\" display regular buttons. width width input.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Dropdown Input — dropInput","text":"","code":"if (interactive()) { library(shiny) library(esquisse) ui <- fluidPage( tags$h2(\"Drop Input\"), dropInput( inputId = \"mydrop\", choicesNames = tagList( list(icon(\"home\"), style = \"width: 100px;\"), list(icon(\"flash\"), style = \"width: 100px;\"), list(icon(\"cogs\"), style = \"width: 100px;\"), list(icon(\"fire\"), style = \"width: 100px;\"), list(icon(\"users\"), style = \"width: 100px;\"), list(icon(\"info\"), style = \"width: 100px;\") ), choicesValues = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\"), dropWidth = \"220px\" ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$mydrop }) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"Deprecated functions — esquisse-deprecated","title":"Deprecated functions — esquisse-deprecated","text":"Deprecated functions","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deprecated functions — esquisse-deprecated","text":"","code":"esquisseContainer(...)"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deprecated functions — esquisse-deprecated","text":"... See esquisse_container()","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Deprecated functions — esquisse-deprecated","text":"following functions deprecated removed next release: esquisseContainer : replaced esquisse_container","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-exports.html","id":null,"dir":"Reference","previous_headings":"","what":"esquisse exported operators and S3 methods — esquisse-exports","title":"esquisse exported operators and S3 methods — esquisse-exports","text":"esquisse exported operators S3 methods","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":null,"dir":"Reference","previous_headings":"","what":"Esquisse module — esquisse-module","title":"Esquisse module — esquisse-module","text":"Use esquisse module Shiny application.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Esquisse module — esquisse-module","text":"","code":"esquisse_ui( id, header = esquisse_header(), container = esquisse_container(), controls = c(\"options\", \"labs\", \"axes\", \"geoms\", \"theme\", \"filters\", \"code\"), insert_code = FALSE, play_pause = TRUE, layout_sidebar = FALSE, downloads = downloads_labels(), n_geoms = 8 ) esquisse_server( id, data_rv = NULL, name = \"data\", default_aes = c(\"fill\", \"color\", \"size\", \"group\", \"facet\"), import_from = c(\"env\", \"file\", \"copypaste\", \"googlesheets\", \"url\"), n_geoms = 8, drop_ids = TRUE, notify_warnings = NULL ) esquisse_container(width = \"100%\", height = \"700px\", fixed = FALSE) esquisse_header( import_data = TRUE, show_data = TRUE, update_variable = TRUE, create_column = TRUE, cut_variable = TRUE, update_factor = TRUE, settings = TRUE, close = TRUE, .before = NULL, .after = NULL )"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Esquisse module — esquisse-module","text":"id Module ID. header Either TRUE FALSE display esquisse header, named list names : settings, close, import show_data values TRUE FALSE display corresponding button. container Container display addin, default use esquisse_container(), see examples. Use NULL container (behavior versions <= 0.2.1). Must function. controls Controls menu displayed. Use NULL hide menus. insert_code Logical, Display button insert ggplot code current user script (work RStudio). play_pause Display play / pause button. layout_sidebar Put controls sidebar left rather chart dropdowns. downloads Export options available NULL export. See downloads_labels(). n_geoms Number geoms user can use. data_rv Either: shiny::reactiveValues() slot data containing data.frame use module slot name corresponding name data.frame used generated code. shiny::reactive() function returning data.frame. See argument name name used generated code. data.frame object. name default name use generated code. Can reactive function return single character. default_aes Default aesthetics used, can character vector reactive function returning one. import_from import data, argument passed datamods::import_server(), use NULL prevent modal appear. drop_ids Argument passed datamods::filter_data_server. Drop columns containing 90% unique values, 50 distinct values. notify_warnings See safe_ggplot(). NULL, user can make choice via settings menu, default show warnings . width, height width height container, e.g. \"400px\", \"100%\"; see htmltools::validateCssUnit(). fixed Use fixed container, e.g. use use esquisse full page. TRUE, width height ignored. Default FALSE. possible use vector CSS unit length 4 specify margins (top, right, bottom, left). import_data Show button import data. show_data Show button display data. update_variable Show button update selected variables convert . create_column Show button create new column based expression. cut_variable Show button allow convert numeric variable factor. update_factor Show button open window reorder factor levels update . settings Show button open settings modal (select aesthetics use). close Show button stop app close addin. ., .Custom content put header, typically buttons.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Esquisse module — esquisse-module","text":"reactiveValues 3 slots : code_plot : code generate plot. code_filters : list length two code reproduce filters. data : data.frame used plot (filters applied).","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Esquisse module — esquisse-module","text":"","code":"### Part of a Shiny app ### library(shiny) library(esquisse) ui <- fluidPage( theme = bs_theme_esquisse(), tags$h1(\"Use esquisse as a Shiny module\"), radioButtons( inputId = \"data\", label = \"Data to use:\", choices = c(\"iris\", \"mtcars\"), inline = TRUE ), checkboxGroupInput( inputId = \"aes\", label = \"Aesthetics to use:\", choices = c( \"fill\", \"color\", \"size\", \"shape\", \"weight\", \"group\", \"facet\", \"facet_row\", \"facet_col\" ), selected = c(\"fill\", \"color\", \"size\", \"facet\"), inline = TRUE ), esquisse_ui( id = \"esquisse\", header = FALSE, # dont display gadget title container = esquisse_container(height = \"700px\") ) ) #> Loading required namespace: plotly server <- function(input, output, session) { data_rv <- reactiveValues(data = iris, name = \"iris\") observeEvent(input$data, { if (input$data == \"iris\") { data_rv$data <- iris data_rv$name <- \"iris\" } else { data_rv$data <- mtcars data_rv$name <- \"mtcars\" } }) esquisse_server( id = \"esquisse\", data_rv = data_rv, default_aes = reactive(input$aes) ) } if (interactive()) shinyApp(ui, server) ### Whole Shiny app ### library(shiny) library(esquisse) # Load some datasets in app environment my_data <- data.frame( var1 = rnorm(100), var2 = sample(letters[1:5], 100, TRUE) ) ui <- fluidPage( theme = bs_theme_esquisse(), esquisse_ui( id = \"esquisse\", header = esquisse_header( close = FALSE, # hide the close button .after = actionButton( # custom button inputId = \"open_modal\", label = NULL, icon = icon(\"plus\") ) ), container = esquisse_container(fixed = TRUE), play_pause = FALSE, controls = c(\"settings\", \"labs\", \"axes\", \"geoms\", \"theme\", \"filters\", \"code\", \"export\"), layout_sidebar = TRUE ) ) server <- function(input, output, session) { esquisse_server(id = \"esquisse\") observeEvent(input$open_modal, { showModal(modalDialog(\"Some content\")) }) } if (interactive()) shinyApp(ui, server) ## You can also use a vector of margins for the fixed argument, # useful if you have a navbar for example library(shiny) library(esquisse) library(datamods) ui <- navbarPage( title = \"My navbar app\", theme = bs_theme_esquisse(), tabPanel( title = \"esquisse\", esquisse_ui( id = \"esquisse\", header = FALSE, container = esquisse_container( fixed = c(55, 0, 0, 0) ) ) ) ) server <- function(input, output, session) { # lauch import data modal import_modal( id = \"import-data\", from = c(\"env\", \"file\", \"copypaste\"), title = \"Import data\" ) data_imported_r <- datamods::import_server(\"import-data\") data_rv <- reactiveValues(data = data.frame()) observeEvent(data_imported_r$data(), { data_rv$data <- data_imported_r$data() data_rv$name <- data_imported_r$name() }) esquisse_server(id = \"esquisse\", data_rv = data_rv) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse.html","id":null,"dir":"Reference","previous_headings":"","what":"Explore and Visualize Your Data Interactively — esquisse","title":"Explore and Visualize Your Data Interactively — esquisse","text":"'shiny' gadget create 'ggplot2' figures interactively drag--drop map variables different aesthetics. can quickly visualize data accordingly type, export various formats, retrieve code reproduce plot.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Explore and Visualize Your Data Interactively — esquisse","text":"Fanny Meyer & Victor Perrier (@dreamRs_fr)","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Explore and Visualize Your Data Interactively — esquisse","text":"","code":"if (FALSE) { # \\dontrun{ esquisser() # launch esquisse with specific data: esquisser(mtcars) } # }"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":null,"dir":"Reference","previous_headings":"","what":"An add-in to easily create plots with ggplot2 — esquisser","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"Select data used map variables aesthetics produce chart, customize common elements get code reproduce chart.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"","code":"esquisser( data = NULL, controls = c(\"options\", \"labs\", \"axes\", \"geoms\", \"theme\", \"filters\", \"code\"), viewer = getOption(x = \"esquisse.viewer\", default = \"dialog\") )"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"data data.frame, can pass data.frame explicitly function, otherwise choose one global environment. controls Controls menu displayed. Use NULL hide menus. viewer display gadget: \"dialog\", \"pane\" \"browser\" (see viewer).","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"NULL. can view code used produce chart, copy insert current script.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"","code":"if (interactive()) { # Launch with : esquisser(iris) # If in RStudio it will be launched by default in dialog window # If not, it will be launched in browser # Launch esquisse in browser : esquisser(iris, viewer = \"browser\") # You can set this option in .Rprofile : options(\"esquisse.viewer\" = \"viewer\") # or options(\"esquisse.viewer\" = \"browser\") # esquisse use shiny::runApp # see ?shiny::runApp to see options # available, example to use custom port: options(\"shiny.port\" = 8080) esquisser(iris, viewer = \"browser\") }"},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":null,"dir":"Reference","previous_headings":"","what":"Potential geometries according to the data — geoms","title":"Potential geometries according to the data — geoms","text":"data variable used aesthetics, decide geometry can used one used default.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Potential geometries according to the data — geoms","text":"","code":"potential_geoms(data, mapping, auto = FALSE) potential_geoms_ref()"},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Potential geometries according to the data — geoms","text":"data data.frame mapping List aesthetic mappings use data. auto Return one geometry.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Potential geometries according to the data — geoms","text":"character vector","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Potential geometries according to the data — geoms","text":"","code":"library(ggplot2) # One continuous variable potential_geoms( data = iris, mapping = aes(x = Sepal.Length) ) #> [1] \"histogram\" \"boxplot\" \"violin\" \"density\" # Automatic pick a geom potential_geoms( data = iris, mapping = aes(x = Sepal.Length), auto = TRUE ) #> [1] \"histogram\" # One discrete variable potential_geoms( data = iris, mapping = aes(x = Species) ) #> [1] \"bar\" # Two continuous variables potential_geoms( data = iris, mapping = aes(x = Sepal.Length, y = Sepal.Width) ) #> [1] \"point\" \"jitter\" \"line\" \"step\" \"path\" \"area\" \"smooth\" \"text\" #> [9] \"label\" \"tile\" # Reference used by esquisse to select available geoms # and decide which one to use by default potential_geoms_ref() #> x y geom auto #> 1 continuous empty histogram 1 #> 2 continuous empty boxplot 0 #> 3 continuous empty violin 0 #> 4 continuous empty density 0 #> 5 discrete empty bar 1 #> 6 time empty histogram 1 #> 7 time empty bar 0 #> 8 continuous discrete boxplot 0 #> 9 continuous discrete point 0 #> 10 continuous discrete jitter 0 #> 11 continuous discrete violin 0 #> 12 continuous discrete bar 1 #> 13 discrete continuous col 1 #> 14 discrete continuous bar 0 #> 15 discrete continuous boxplot 0 #> 16 discrete continuous point 0 #> 17 discrete continuous jitter 0 #> 18 discrete continuous violin 0 #> 19 discrete continuous text 0 #> 20 discrete continuous label 0 #> 21 continuous continuous point 1 #> 22 continuous continuous jitter 0 #> 23 continuous continuous line 0 #> 24 continuous continuous step 0 #> 25 continuous continuous path 0 #> 26 continuous continuous area 0 #> 27 continuous continuous smooth 0 #> 28 continuous continuous text 0 #> 29 continuous continuous label 0 #> 30 discrete discrete tile 1 #> 31 time continuous line 1 #> 32 time continuous point 0 #> 33 time continuous step 0 #> 34 time continuous area 0 #> 35 time continuous bar 0 #> 36 time continuous smooth 0 #> 37 empty continuous line 1 #> 38 empty continuous step 0 #> 39 empty continuous path 0 #> 40 empty continuous area 0 #> 41 continuous continuous tile 0 #> 42 discrete time tile 0 #> 43 time discrete tile 0"},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate code to create a ggplot2 — ggcall","title":"Generate code to create a ggplot2 — ggcall","text":"Generate code create ggplot2","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate code to create a ggplot2 — ggcall","text":"","code":"ggcall( data = NULL, mapping = NULL, geom = NULL, geom_args = list(), scales = NULL, scales_args = list(), coord = NULL, coord_args = list(), labs = list(), theme = NULL, theme_args = list(), facet = NULL, facet_row = NULL, facet_col = NULL, facet_args = list(), xlim = NULL, ylim = NULL )"},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate code to create a ggplot2 — ggcall","text":"data Character. Name data.frame. mapping List. Named list aesthetics. geom Character. Name geom use (without \"geom_\"). geom_args List. Arguments use geom. scales Character vector. Scale(s) use (without \"scale_\"). scales_args List. Arguments use scale(s), scales length > 1, must named list scales names. coord Character. Coordinates use (without \"coord_\"). coord_args Arguments coordinates function. labs List. Named list labels use title, subtitle, x & y axis, legends. theme Character. Name theme use (without \"theme_\"). theme_args Named list. Arguments ggplot2::theme(). facet Character vector. Names variables use ggplot2::facet_wrap. facet_row Character vector. Names row variables use ggplot2::facet_grid(). facet_col Character vector. Names col variables use ggplot2::facet_grid(). facet_args Named list. Arguments ggplot2::facet_wrap(). xlim vector length 2 representing limits x-axis. ylim vector length 2 representing limits y-axis.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate code to create a ggplot2 — ggcall","text":"call can evaluated eval.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate code to create a ggplot2 — ggcall","text":"","code":"# Default: ggcall() #> ggplot() # With data and aes ggcall(\"mtcars\", list(x = \"mpg\", y = \"wt\")) #> ggplot(mtcars) + aes(x = mpg, y = wt) # Evaluate the call library(ggplot2) eval(ggcall(\"mtcars\", list(x = \"mpg\", y = \"wt\"))) # With a geom: ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\"), geom = \"point\" ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + geom_point() # With options ggcall( data = \"mtcars\", mapping = list(x = \"hp\", y = \"cyl\", fill = \"color\"), geom = \"bar\", coord = \"flip\", labs = list(title = \"My title\"), theme = \"minimal\", facet = c(\"gear\", \"carb\"), theme_args = list(legend.position = \"bottom\") ) #> ggplot(mtcars) + aes(x = hp, y = cyl, fill = color) + geom_bar() + #> labs(title = \"My title\") + coord_flip() + theme_minimal() + #> theme(legend.position = \"bottom\") + facet_wrap(vars(gear, #> carb)) # Theme ggcall( \"mtcars\", list(x = \"mpg\", y = \"wt\"), theme = \"theme_minimal\", theme_args = list( panel.ontop = TRUE, legend.title = rlang::expr(element_text(face = \"bold\")) ) ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + theme_minimal() + theme(panel.ontop = TRUE, #> legend.title = element_text(face = \"bold\")) # Theme from other package than ggplot2 ggcall( \"mtcars\", list(x = \"mpg\", y = \"wt\"), theme = \"ggthemes::theme_economist\" ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + ggthemes::theme_economist() # One scale ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\", color = \"qsec\"), geom = \"point\", scales = \"color_distiller\", scales_args = list(palette = \"Blues\") ) #> ggplot(mtcars) + aes(x = mpg, y = wt, color = qsec) + geom_point() + #> scale_color_distiller(palette = \"Blues\") # Two scales ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\", color = \"qsec\", size = \"qsec\"), geom = \"point\", scales = c(\"color_distiller\", \"size_continuous\"), scales_args = list( color_distiller = list(palette = \"Greens\"), size_continuous = list(range = c(1, 20)) ) ) #> ggplot(mtcars) + aes(x = mpg, y = wt, color = qsec, size = qsec) + #> geom_point() + scale_color_distiller(palette = \"Greens\") + #> scale_size_continuous(range = c(1, 20)) # Coordinates ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\"), geom = \"point\", coord = \"fixed\" ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + geom_point() + coord_fixed() ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\"), geom = \"point\", coord = \"fixed\", coord_args = list(ratio = 5) ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + geom_point() + coord_fixed(ratio = 5)"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":null,"dir":"Reference","previous_headings":"","what":"Render ggplot module — ggplot-output","title":"Render ggplot module — ggplot-output","text":"Display plot client allow download .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Render ggplot module — ggplot-output","text":"","code":"ggplot_output( id, width = \"100%\", height = \"400px\", downloads = downloads_labels(), ... ) downloads_labels( label = ph(\"download-simple\"), png = tagList(ph(\"image\"), \"PNG\"), pdf = tagList(ph(\"file-pdf\"), \"PDF\"), svg = tagList(ph(\"browsers\"), \"SVG\"), jpeg = tagList(ph(\"image\"), \"JPEG\"), pptx = tagList(ph(\"projector-screen\"), \"PPTX\"), more = tagList(ph(\"gear\"), i18n(\"More options\")) ) render_ggplot( id, expr, ..., env = parent.frame(), quoted = FALSE, filename = \"export-ggplot\", resizable = FALSE, use_plotly = reactive(FALSE), width = reactive(NULL), height = reactive(NULL) )"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Render ggplot module — ggplot-output","text":"id Module ID. width, height Width / Height plot, server shiny::reactive() function returning new width/height plot. downloads Labels export options, use downloads_labels() NULL disable export options. ... Parameters passed shiny::plotOutput() (ggplot_output) shiny::renderPlot() (render_ggplot). label Main label export button png, pdf, svg, jpeg, pptx Labels display export menu, use NULL disable specific format. Label \"\" button, allowing launch export modal. expr expression generates ggplot object. env environment evaluate expression. quoted expr quoted expression (quote())? useful want save expression variable. filename string filename export WITHOUT extension, added according type export. resizable Can chart size adjusted user? use_plotly shiny::reactive() function returning TRUE FALSE render plot plotly::ggplotly() .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Render ggplot module — ggplot-output","text":"Server-side, reactiveValues plot.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Render ggplot module — ggplot-output","text":"","code":"library(shiny) library(ggplot2) library(esquisse) ui <- fluidPage( tags$h2(\"ggplot output\"), selectInput(\"var\", \"Variable:\", names(economics)[-1]), ggplot_output(\"MYID\", width = \"600px\") ) server <- function(input, output, session) { render_ggplot(\"MYID\", { ggplot(economics) + geom_line(aes(date, !!sym(input$var))) + theme_minimal() + labs( title = \"A cool chart made with ggplot2\", subtitle = \"that you can export in various format\" ) }) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":null,"dir":"Reference","previous_headings":"","what":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"can use RStudio addin interactively select ggplot objects, directly pass names function.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"","code":"ggplot_to_ppt(gg = NULL)"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"gg character. Name(s) ggplot object(s), NULL, launch Shiny gadget.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"Path temporary PowerPoint file.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"","code":"# Shiny gadget if (interactive()) { ggplot_to_ppt() # Or with an object's name library(ggplot2) p <- ggplot(iris) + geom_point(aes(Sepal.Length, Sepal.Width)) ggplot_to_ppt(\"p\") }"},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":null,"dir":"Reference","previous_headings":"","what":"Picker input to select color(s) or palette — input-colors","title":"Picker input to select color(s) or palette — input-colors","text":"Select menu view choose color palette colors.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Picker input to select color(s) or palette — input-colors","text":"","code":"colorPicker( inputId, label, choices, selected = NULL, textColor = \"#000\", plainColor = FALSE, multiple = FALSE, pickerOpts = list(), width = NULL ) updateColorPicker( session = getDefaultReactiveDomain(), inputId, choices, textColor = \"#000\", plainColor = FALSE, multiple = FALSE ) palettePicker( inputId, label, choices, selected = NULL, textColor = \"#000\", plainColor = FALSE, pickerOpts = list(), width = NULL ) updatePalettePicker( session = getDefaultReactiveDomain(), inputId, choices, selected = NULL, textColor = \"#000\", plainColor = FALSE )"},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Picker input to select color(s) or palette — input-colors","text":"inputId input slot used access value. label Display label control, NULL label. choices List values select . Values must valid Hex colors. elements list named name rather value displayed user. selected initially selected value (multiple values multiple = TRUE). specified defaults first value single-select lists values multiple select lists. textColor Color text displayed colors, can vector length choices. plainColor Color full space choice menu. multiple selection multiple items allowed? pickerOpts Options pickerInput. width width input : 'auto', 'fit', '100px', '75%'. session Shiny session.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Picker input to select color(s) or palette — input-colors","text":"select control can added UI definition.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Picker input to select color(s) or palette — input-colors","text":"","code":"# colorPicker ------------------------------------------------------------- library(shiny) library(esquisse) library(scales) ui <- fluidPage( tags$h2(\"colorPicker examples\"), fluidRow( column( width = 3, colorPicker( inputId = \"col1\", label = \"With a vector of colors:\", choices = brewer_pal(palette = \"Dark2\")(8) ), verbatimTextOutput(\"res1\"), colorPicker( inputId = \"col5\", label = \"Update colors:\", choices = brewer_pal(palette = \"Blues\", direction = -1)(8), textColor = \"#FFF\" ), verbatimTextOutput(\"res5\"), radioButtons( \"update\", \"Colors\", c(\"Blues\", \"Greens\", \"Reds\"), inline = TRUE ) ), column( width = 3, colorPicker( inputId = \"col2\", label = \"Change text color:\", choices = brewer_pal(palette = \"Blues\")(8), textColor = c(\"black\", \"black\", \"black\", \"white\", \"white\", \"white\", \"white\", \"white\") ), verbatimTextOutput(\"res2\") ), column( width = 3, colorPicker( inputId = \"col3\", label = \"With a list of vector of colors:\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Greens\" = brewer_pal(palette = \"Greens\")(8) ) ), verbatimTextOutput(\"res3\") ), column( width = 3, colorPicker( inputId = \"col4\", label = \"Plain color & multiple choices:\", choices = brewer_pal(palette = \"Paired\")(8), plainColor = TRUE, multiple = TRUE, pickerOpts = list(`selected-text-format`= \"count > 3\") ), verbatimTextOutput(\"res4\") ) ) ) server <- function(input, output, session) { output$res1 <- renderPrint(input$col1) output$res2 <- renderPrint(input$col2) output$res3 <- renderPrint(input$col3) output$res4 <- renderPrint(input$col4) output$res5 <- renderPrint(input$col5) observeEvent(input$update, { updateColorPicker( inputId = \"col5\", choices = brewer_pal(palette = input$update, direction = -1)(8), textColor = \"#FFF\" ) }) } if (interactive()) { shinyApp(ui, server) } # palettePicker ----------------------------------------------------------- library(shiny) library(esquisse) library(scales) ui <- fluidPage( tags$h2(\"pickerColor examples\"), fluidRow( column( width = 4, palettePicker( inputId = \"pal1\", label = \"Select a palette:\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8) ) ), verbatimTextOutput(\"res1\"), palettePicker( inputId = \"pal4\", label = \"Update palette:\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8) ) ), verbatimTextOutput(\"res4\"), radioButtons( \"update\", \"Palettes:\", c(\"default\", \"viridis\", \"brewer\"), inline = TRUE ) ), column( width = 4, palettePicker( inputId = \"pal2\", label = \"With a list of palette:\", choices = list( \"Viridis\" = list( \"viridis\" = viridis_pal(option = \"viridis\")(10), \"magma\" = viridis_pal(option = \"magma\")(10), \"inferno\" = viridis_pal(option = \"inferno\")(10), \"plasma\" = viridis_pal(option = \"plasma\")(10), \"cividis\" = viridis_pal(option = \"cividis\")(10) ), \"Brewer\" = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Paired\" = brewer_pal(palette = \"Paired\")(8), \"Set1\" = brewer_pal(palette = \"Set1\")(8) ) ), textColor = c( rep(\"white\", 5), rep(\"black\", 4) ) ), verbatimTextOutput(\"res2\") ), column( width = 4, palettePicker( inputId = \"pal3\", label = \"With plain colors:\", choices = list( \"BrBG\" = brewer_pal(palette = \"BrBG\")(8), \"PiYG\" = brewer_pal(palette = \"PiYG\")(8), \"PRGn\" = brewer_pal(palette = \"PRGn\")(8), \"PuOr\" = brewer_pal(palette = \"PuOr\")(8), \"RdBu\" = brewer_pal(palette = \"RdBu\")(8), \"RdGy\" = brewer_pal(palette = \"RdGy\")(8), \"RdYlBu\" = brewer_pal(palette = \"RdYlBu\")(8), \"RdYlGn\" = brewer_pal(palette = \"RdYlGn\")(8), \"Spectral\" = brewer_pal(palette = \"Spectral\")(8) ), plainColor = TRUE, textColor = \"white\" ), verbatimTextOutput(\"res3\") ) ) ) server <- function(input, output, session) { output$res1 <- renderPrint(input$pal1) output$res2 <- renderPrint(input$pal2) output$res3 <- renderPrint(input$pal3) output$res4 <- renderPrint(input$pal4) observeEvent(input$update, { if (input$update == \"default\") { updatePalettePicker( inputId = \"pal4\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8) ) ) } else if (input$update == \"viridis\") { updatePalettePicker( inputId = \"pal4\", choices = list( \"viridis\" = viridis_pal(option = \"viridis\")(10), \"magma\" = viridis_pal(option = \"magma\")(10), \"inferno\" = viridis_pal(option = \"inferno\")(10), \"plasma\" = viridis_pal(option = \"plasma\")(10), \"cividis\" = viridis_pal(option = \"cividis\")(10) ), textColor = \"#FFF\" ) } else if (input$update == \"brewer\") { updatePalettePicker( inputId = \"pal4\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Paired\" = brewer_pal(palette = \"Paired\")(8), \"Set1\" = brewer_pal(palette = \"Set1\")(8) ) ) } }) } if (interactive()) { shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":null,"dir":"Reference","previous_headings":"","what":"Match list of arguments to arguments of geometry — match_geom_args","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"Match list arguments arguments geometry","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"","code":"match_geom_args( geom, args, add_aes = TRUE, mapping = list(), add_mapping = FALSE, exclude_args = NULL, envir = \"ggplot2\" )"},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"geom Character. name geometry. args Named list, parameters matched geometry arguments. add_aes Add aesthetics parameters (like size, fill, ...). mapping Mapping used plot, avoid setting fixed aesthetics parameters. add_mapping Add mapping argument. exclude_args Character vector arguments exclude, default exclude aesthetics names. envir Package environment search .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"list().","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"","code":"# List of parameters params <- list( bins = 30, scale = \"width\", adjust = 2, position = \"stack\", size = 1.6, fill = \"#112246\" ) # Search arguments according to geom match_geom_args(geom = \"histogram\", args = params) #> $bins #> [1] 30 #> #> $position #> [1] \"stack\" #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"violin\", args = params) #> $scale #> [1] \"width\" #> #> $position #> [1] \"stack\" #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"bar\", args = params, add_aes = FALSE) #> $position #> [1] \"stack\" #> match_geom_args(geom = \"point\", args = params) #> $position #> [1] \"stack\" #> #> $size #> [1] 1.6 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"point\", args = params, add_aes = FALSE) #> $position #> [1] \"stack\" #>"},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":null,"dir":"Reference","previous_headings":"","what":"Safely render a ggplot in Shiny application — safe_ggplot","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"Safely render ggplot Shiny application","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"","code":"safe_ggplot( expr, data = NULL, show_notification = c(\"always\", \"once\", \"never\"), session = shiny::getDefaultReactiveDomain() )"},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"expr Code produce ggplot object. data Argument passed eval_tidy evaluate expression. show_notification Strategy notifications warning occurs: \"always\" : default, show notifications warnings \": show notification per warning \"never\" : display notifications. session Session object send notification .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"Output ggplot_build.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"","code":"if (interactive()) { library(shiny) library(ggplot2) ui <- fluidPage( fluidRow( column( width = 3, selectInput( inputId = \"var\", label = \"Var:\", choices = c(\"Sepal.Width\", \"Do.Not.Exist\") ) ), column( width = 9, plotOutput(outputId = \"plot\") ) ) ) server <- function(input, output, session) { output$plot <- renderPlot({ p <- ggplot(iris) + geom_point(aes_string(\"Sepal.Length\", input$var)) safe_ggplot(p) }) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":null,"dir":"Reference","previous_headings":"","what":"Save ggplot module — save-ggplot-module","title":"Save ggplot module — save-ggplot-module","text":"Save ggplot object various format resize saving.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Save ggplot module — save-ggplot-module","text":"","code":"save_ggplot_ui( id, output_format = c(\"png\", \"pdf\", \"svg\", \"jpeg\", \"bmp\", \"eps\", \"tiff\") ) save_ggplot_modal( id, title = NULL, output_format = c(\"png\", \"pdf\", \"svg\", \"jpeg\", \"bmp\", \"eps\", \"tiff\") ) save_ggplot_server(id, plot_rv)"},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Save ggplot module — save-ggplot-module","text":"id Module ID. output_format Output formats offered user. title Modal's title. plot_rv reactiveValues slot plot containing ggplot object.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Save ggplot module — save-ggplot-module","text":"value. Use UI & server shiny application.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Save ggplot module — save-ggplot-module","text":"","code":"library(shiny) library(ggplot2) library(esquisse) ui <- fluidPage( tags$h2(\"Save a ggplot\"), selectInput(\"var\", \"Variable:\", names(economics)[-1]), plotOutput(\"plot\", width = \"600px\"), actionButton(\"save\", \"Save this plot\") ) server <- function(input, output, session) { rv <- reactiveValues(plot = NULL) output$plot <- renderPlot({ rv$plot <- ggplot(economics) + geom_line(aes(date, !!sym(input$var))) + theme_minimal() rv$plot }) observeEvent(input$save, { save_ggplot_modal(\"ID\", \"Save plot\") }) save_ggplot_server(\"ID\", rv) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Update Dragula Input — updateDragulaInput","title":"Update Dragula Input — updateDragulaInput","text":"Update dragulaInput() widget server-side.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Update Dragula Input — updateDragulaInput","text":"","code":"updateDragulaInput( session, inputId, choices = NULL, choiceNames = NULL, choiceValues = NULL, selected = NULL, selectedNames = NULL, selectedValues = NULL, badge = TRUE, status = \"primary\" )"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Update Dragula Input — updateDragulaInput","text":"session session object passed function given shinyServer. inputId input slot used access value. choices List values select (elements list named name rather value displayed user). argument provided, choiceNames choiceValues must provided, vice-versa. values strings; types (logicals numbers) coerced strings. choiceNames, choiceValues List names values, respectively, displayed user app correspond choice (reason, choiceNames choiceValues must length). either arguments provided, must provided choices must provided. advantage using named list choices choiceNames allows type UI object passed (tag objects, icons, HTML code, ...), instead just simple text. selected Default selected values. Must list targetsIds names. selectedNames, selectedValues Update selected items custom names values. badge Displays choices inside Bootstrap badge. Use FALSE want pass custom appearance choiceNames. status choices displayed Bootstrap label, can use Bootstrap status color , NULL.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Update Dragula Input — updateDragulaInput","text":"","code":"if (interactive()) { library(\"shiny\") library(\"esquisse\") ui <- fluidPage( tags$h2(\"Update dragulaInput\"), radioButtons( inputId = \"update\", label = \"Dataset\", choices = c(\"iris\", \"mtcars\") ), tags$br(), dragulaInput( inputId = \"myDad\", sourceLabel = \"Variables\", targetsLabels = c(\"X\", \"Y\", \"fill\", \"color\", \"size\"), choices = names(iris), replace = TRUE, width = \"400px\", status = \"success\" ), verbatimTextOutput(outputId = \"result\") ) server <- function(input, output, session) { output$result <- renderPrint(str(input$myDad)) observeEvent(input$update, { if (input$update == \"iris\") { updateDragulaInput( session = session, inputId = \"myDad\", choices = names(iris), status = \"success\" ) } else { updateDragulaInput( session = session, inputId = \"myDad\", choices = names(mtcars) ) } }, ignoreInit = TRUE) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Change the value of a drop input on the client — updateDropInput","title":"Change the value of a drop input on the client — updateDropInput","text":"Change value drop input client","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Change the value of a drop input on the client — updateDropInput","text":"","code":"updateDropInput(session, inputId, selected = NULL, disabled = NULL)"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Change the value of a drop input on the client — updateDropInput","text":"session session object passed function given shinyServer. inputId id input object. selected initially selected value. disabled Choices (choicesValues) disable.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Change the value of a drop input on the client — updateDropInput","text":"","code":"if (interactive()) { library(shiny) library(esquisse) myChoices <- tagList( list(icon(\"home\"), style = \"width: 100px;\"), list(icon(\"flash\"), style = \"width: 100px;\"), list(icon(\"cogs\"), style = \"width: 100px;\"), list(icon(\"fire\"), style = \"width: 100px;\"), list(icon(\"users\"), style = \"width: 100px;\"), list(icon(\"info\"), style = \"width: 100px;\") ) ui <- fluidPage( tags$h2(\"Update Drop Input\"), fluidRow( column( width = 6, dropInput( inputId = \"mydrop\", choicesNames = myChoices, choicesValues = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\"), dropWidth = \"220px\" ), verbatimTextOutput(outputId = \"res\") ), column( width = 6, actionButton(\"home\", \"Select home\"), actionButton(\"flash\", \"Select flash\"), actionButton(\"cogs\", \"Select cogs\"), actionButton(\"fire\", \"Select fire\"), actionButton(\"users\", \"Select users\"), actionButton(\"info\", \"Select info\"), checkboxGroupInput( inputId = \"disabled\", label = \"Choices to disable\", choices = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\") ), actionButton(\"disable\", \"Disable\") ) ) ) server <- function(input, output, session) { output$res <- renderPrint({ input$mydrop }) observeEvent(input$home, { updateDropInput(session, \"mydrop\", \"home\") }) observeEvent(input$flash, { updateDropInput(session, \"mydrop\", \"flash\") }) observeEvent(input$cogs, { updateDropInput(session, \"mydrop\", \"cogs\") }) observeEvent(input$fire, { updateDropInput(session, \"mydrop\", \"fire\") }) observeEvent(input$users, { updateDropInput(session, \"mydrop\", \"users\") }) observeEvent(input$info, { updateDropInput(session, \"mydrop\", \"info\") }) observeEvent(input$disable, { if (!is.null(input$disabled)) { updateDropInput(session, \"mydrop\", disabled = input$disabled) } else { updateDropInput(session, \"mydrop\", disabled = character(0)) } }) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":null,"dir":"Reference","previous_headings":"","what":"Automatically select appropriate color scale — which_pal_scale","title":"Automatically select appropriate color scale — which_pal_scale","text":"Automatically select appropriate color scale","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Automatically select appropriate color scale — which_pal_scale","text":"","code":"which_pal_scale( mapping, palette = \"ggplot2\", data = NULL, fill_type = c(\"continuous\", \"discrete\"), color_type = c(\"continuous\", \"discrete\"), reverse = FALSE )"},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Automatically select appropriate color scale — which_pal_scale","text":"mapping Aesthetics used ggplot. palette Color palette. data optional data.frame choose right type variables. fill_type, color_type Scale use according variable used fill/color aesthetic : \"discrete\" \"continuous\". Ignored data provided: guessed data. reverse Reverse colors order .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Automatically select appropriate color scale — which_pal_scale","text":"list","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Automatically select appropriate color scale — which_pal_scale","text":"","code":"library(ggplot2) # Automatic guess according to data which_pal_scale( mapping = aes(fill = Sepal.Length), palette = \"ggplot2\", data = iris ) #> $scales #> [1] \"scale_fill_gradient\" #> #> $args #> list() #> which_pal_scale( mapping = aes(fill = Species), palette = \"ggplot2\", data = iris ) #> $scales #> [1] \"scale_fill_hue\" #> #> $args #> $args$scale_fill_hue #> $args$scale_fill_hue$direction #> [1] 1 #> #> #> # Explicitly specify type which_pal_scale( mapping = aes(color = variable), palette = \"Blues\", color_type = \"discrete\" ) #> $scales #> [1] \"scale_color_brewer\" #> #> $args #> $args$scale_color_brewer #> $args$scale_color_brewer$palette #> [1] \"Blues\" #> #> $args$scale_color_brewer$direction #> [1] 1 #> #> #> # Both scales which_pal_scale( mapping = aes(color = var1, fill = var2), palette = \"Blues\", color_type = \"discrete\", fill_type = \"continuous\" ) #> $scales #> [1] \"scale_fill_distiller\" \"scale_color_brewer\" #> #> $args #> $args$scale_fill_distiller #> $args$scale_fill_distiller$palette #> [1] \"Blues\" #> #> $args$scale_fill_distiller$direction #> [1] 1 #> #> #> $args$scale_color_brewer #> $args$scale_color_brewer$palette #> [1] \"Blues\" #> #> $args$scale_color_brewer$direction #> [1] 1 #> #> #>"},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-201","dir":"Changelog","previous_headings":"","what":"esquisse 2.0.1","title":"esquisse 2.0.1","text":"Fixed bug Use Specific Colors mapping variable color #276. Fixed bug n_geoms different ui server #272. Update manual Chinese translation cn.csv @YaoxiangLi #273.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-200","dir":"Changelog","previous_headings":"","what":"esquisse 2.0.0","title":"esquisse 2.0.0","text":"CRAN release: 2024-05-25 New app use esquisse online: https://dreamrs.shinyapps.io/esquisse/. Support Plotly, transforming charts ggplotly. Ability use multiple geometries respective aesthetics. New layout available display controls inside accordeons sidebar. Update variables classes names Create new variable based R expression Cut numeric variable factor Re-order factor levels Controls reorganized following categories: options, labs, axes, geoms, theme, filters, code, export","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-121","dir":"Changelog","previous_headings":"","what":"esquisse 1.2.1","title":"esquisse 1.2.1","text":"Add alpha transparency aes setting, @MajoroMask.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-120","dir":"Changelog","previous_headings":"","what":"esquisse 1.2.0","title":"esquisse 1.2.0","text":"CRAN release: 2024-01-10 Warning messages now displayed per session, user can choose via settings menu display . ’re using esquisse_server() module, ’s new notify_warnings = argument choosing notifications: display , per warning never display . esquisse_server() : support reactive functions data_rv argument. Allow esquisse_server() initialized NULL without forcing import module appear using import_from = NULL #232. New geom available interface : geom_path. esquisse_ui(): ability display element module (header’s button, play/pause button, export options). safe_ggplot() new argument show_notification allow displaying notifications displaying theme per session. i18n: new translations added: polish, activate set_i18n(\"pl\"), thanks @jakub-jedrusiak japanese, activate set_i18n(\"ja\"), thanks @nissinbo german, activate set_i18n(\"de\"), thanks @1O","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-112","dir":"Changelog","previous_headings":"","what":"esquisse 1.1.2","title":"esquisse 1.1.2","text":"CRAN release: 2022-09-01 i18n: new translations added: turkish, activate set_i18n(\"tr\"), thanks @sbalci italian, activate set_i18n(\"\"), thanks @SantiagoGiordano chinese, activate set_i18n(\"cn\"), thanks @xmusphlkg korean, activate set_i18n(\"kr\"), thanks @ChangwooLim Bootstrap 5 support.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-111","dir":"Changelog","previous_headings":"","what":"esquisse 1.1.1","title":"esquisse 1.1.1","text":"CRAN release: 2022-05-03 Play/Pause button back: allow set reactivity “pause” multiple changes, avoiding render intermediate plots. i18n: new translations added: spanish, activate set_i18n(\"es\"), thanks @dnldelarosa albanian (updated), activate set_i18n(\"al\"), thanks @EGjika portuguese, activate set_i18n(\"pt\"), thanks @mribeirodantas","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"bug-fixes-1-1-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"esquisse 1.1.1","text":"Fix selected argument dragulaInput() ignored outside bookmarking.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-110","dir":"Changelog","previous_headings":"","what":"esquisse 1.1.0","title":"esquisse 1.1.0","text":"CRAN release: 2022-01-07 i18n: 🇫🇷 french translations added, activate set_i18n(\"fr\"). i18n: 🇲🇰 macedonian translations added, activate set_i18n(\"mk\"), thanks @novica. i18n: 🇦🇱 albanian translations added, activate set_i18n(\"al\"), thanks @novica. Added geom_jitter() possible geom. Added possibility add jittered points boxplot.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-102","dir":"Changelog","previous_headings":"","what":"esquisse 1.0.2","title":"esquisse 1.0.2","text":"CRAN release: 2021-07-05 Use named character vector scale manual instead list (generated code). save_ggplot_modal() / save_ggplot_ui(): added output_format argument select exported format allowed. Fix bug data imported source environment #154, #169 Fix bug dragulaInput() / updateDragulaInput() selected values.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-101","dir":"Changelog","previous_headings":"","what":"esquisse 1.0.1","title":"esquisse 1.0.1","text":"CRAN release: 2021-04-20 Corrected bug using sf objects (fix #147). Use pkg::data notation data used addin comes package (fix #150). Corrected bug labs’ input controls panel disabled (fix #148)","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-100","dir":"Changelog","previous_headings":"","what":"esquisse 1.0.0","title":"esquisse 1.0.0","text":"CRAN release: 2021-04-12 Ability select aesthetics parameters use New module import data package datamods Possibility define manual color palette format exporting plots: png, pdf, svg, jpeg, pptx New function render ggplot add export options: ggplot_output() / render_ggplot() New module export plot: save_ggplot_ui() / save_ggplot_server() Options setting title, subtitle, axis labels font size / weight, alignment Added geom step ability select shape aesthetic used Allowing geom_point plotting Time vs Continuous Data @matton2","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-031","dir":"Changelog","previous_headings":"","what":"esquisse 0.3.1","title":"esquisse 0.3.1","text":"CRAN release: 2020-09-27 facet wrap displays @xiangnandang facet_row facet_col features allow facet_grid call ggplot2 @xiangnandang x y limits plots @xiangnandang Check data null changing datasets @trafficonese. New function updateDragulaInput() update dragulaInput() server side. dragulaInput() two new arguments: ncolSource ncolGrid create grid layout source targets boxes.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-030","dir":"Changelog","previous_headings":"","what":"esquisse 0.3.0","title":"esquisse 0.3.0","text":"CRAN release: 2020-01-27 Fixed bug dragulaInput preventing change variable main addin. chooseDataServer() new argument selectedTypes set types variables selected default. #95 Packages {ggthemes} {hrbrthemes} now Suggests.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-023","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.3","title":"esquisse 0.2.3","text":"CRAN release: 2020-01-09 New argument disable_filters esquisserUI() disable ability filter data. Enable bookmarking module filterDF. filterDF() module handle missing values correctly. filterDF() two new arguments : drop_ids : logical, drop column unique values, picker allow use shinyWidgets::pickerInput. Code generated : affectation {dplyr} code, pipe used send code {ggplot2} (mentioned #79)","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-022","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.2","title":"esquisse 0.2.2","text":"CRAN release: 2019-08-22 Added esquisseContainer() better integrate esquisse module shiny application. New functions colorPicker() palettePicker() select color palette (select control used main addin). New argument insert_code esquisserUI() hide “Insert script button”.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"breaking-changes-0-2-2","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"esquisse 0.2.2","text":"using esquisse module shiny, ’s necessary anymore put esquisseUI container, one now added via argument esquisseUI(container = ...) :","code":"# old tags$div( style = \"height: 700px;\", esquisserUI( id = \"esquisse\" ) ) # new esquisserUI( id = \"esquisse\", container = esquisseContainer(height = \"700px\") )"},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-021","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.1","title":"esquisse 0.2.1","text":"CRAN release: 2019-07-01 Fix bug adding smooth line (missing import geom_smooth). Support themes scales (color/fill) {hrbrthemes}. Set labels fill, color size aesthetics.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-020","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.0","title":"esquisse 0.2.0","text":"CRAN release: 2019-06-20 Now use rlang generate ggplot code. Code generated filtering data available ggplot code, use dplyr syntax. #19, #46 Ability set scales argument facet_wrap (fixed, free, free_x, free_y). #47 Support scales continuous transformation (log1p, log, sqrt, reverse, …). #24","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-018","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.8","title":"esquisse 0.1.8","text":"Support group aesthetic. New supported geom: geom_area.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-017","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.7","title":"esquisse 0.1.7","text":"CRAN release: 2018-11-14 Play/Pause button stop reactivity creating plot (prevent plot update time make change). Support palette viridisLite.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-016","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.6","title":"esquisse 0.1.6","text":"CRAN release: 2018-10-26 Support sf objects. Use esquisse shiny module. Facets support thanks @itcarroll (#30) New import data modules. Fix bug launching addin RStudio #25","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-015","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.5","title":"esquisse 0.1.5","text":"CRAN release: 2018-09-28 Module coerce variable different type. Scroll data lot variables. Prevent filter discrete variables 100 unique elements.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-010","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.0","title":"esquisse 0.1.0","text":"Addin make ggplot.","code":""}] +[{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"launch-the-addin","dir":"Articles","previous_headings":"","what":"Launch the addin","title":"Get started with esquisse","text":"RStudio, can use Addins menu : R console : use data.frame default, using Addins menu highlight cursor data.frame source editor launching addin. Otherwise, pass data.frame first argument function :","code":"esquisser() esquisser(mtcars)"},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"import-data-into-esquisse","dir":"Articles","previous_headings":"","what":"Import data into {esquisse}","title":"Get started with esquisse","text":"don’t used data.frame launching addin, window import data appear. feature comes package {datamods}, can find documentation .","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"create-a-plot","dir":"Articles","previous_headings":"","what":"Create a plot","title":"Get started with esquisse","text":"main interface interesting part addin (example , use penguins dataset {palmerpenguins}) : can select aesthetics used clicking gear icon top right corner, drag--drop aesthetics boxes create plot: geometry automatically picked represent data, according data type. can select geom button top right corner :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"controls","dir":"Articles","previous_headings":"","what":"Controls","title":"Get started with esquisse","text":"Five menus plot area available set plot parameters, filter data retrieve code generate plot.","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"labels-titles","dir":"Articles","previous_headings":"Controls","what":"Labels & titles","title":"Get started with esquisse","text":"menu allow set plot’s title, subtitle, caption, axis aesthetics labels :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"plot-options","dir":"Articles","previous_headings":"Controls","what":"Plot options","title":"Get started with esquisse","text":"can modify plot parameters, options available menu depends type plot :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"appearance","dir":"Articles","previous_headings":"Controls","what":"Appearance","title":"Get started with esquisse","text":"can modify colors used global theme :","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"filter","dir":"Articles","previous_headings":"Controls","what":"Filter","title":"Get started with esquisse","text":"Widgets interactively filter data used plot : filter module available package {datamods}. code used filter data available following menu.","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"code","dir":"Articles","previous_headings":"Controls","what":"Code","title":"Get started with esquisse","text":"menu, can retrieve code used produce plot, well code used filter data. can copy code clipboard, insert current script.","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"export","dir":"Articles","previous_headings":"","what":"Export","title":"Get started with esquisse","text":"can save plot created various format clicking button plot area’s top-right corner: “options”, can access new window parameters export plot:","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"addin-options","dir":"Articles","previous_headings":"","what":"Addin options","title":"Get started with esquisse","text":"default, esquisse launched dialog window (RStudio), can choose use browser prefer, Viewer pane. can set display mode option (.Rprofile example) :","code":"esquisser(viewer = \"browser\") esquisser(viewer = \"pane\") options(\"esquisse.viewer\" = \"browser\")"},{"path":"https://dreamrs.github.io/esquisse/articles/get-started.html","id":"internationalization","dir":"Articles","previous_headings":"Addin options","what":"Internationalization","title":"Get started with esquisse","text":"Currently can use {esquisse} following language: english (default), french (\"fr\"), macedonian (\"mk\"), albanian (\"sq\"). Activate : want another language supported, can submit Pull Request add CSV file like one used french (file located inst/i18n folder package, can see GitHub). See {datamods} vignette topic.","code":"library(esquisse) set_i18n(\"fr\") esquisser()"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"use-esquisse-as-a-shiny-module","dir":"Articles","previous_headings":"","what":"Use esquisse as a Shiny module","title":"Shiny usage","text":"{esquisse} built Shiny modules (see article reference), can use {esquisse} directly Shiny application : Result looks like : output module reactiveValues 3 slots : code_plot : code generate plot. code_filters : list length two code reproduce filters. data : data.frame used plot (filters applied).","code":"library(esquisse) library(shiny) library(ggplot2) ui <- fluidPage( titlePanel(\"Use esquisse as a Shiny module\"), sidebarLayout( sidebarPanel( radioButtons( inputId = \"data\", label = \"Select data to use:\", choices = c(\"mpg\", \"diamonds\", \"economics\") ) ), mainPanel( tabsetPanel( tabPanel( title = \"esquisse\", esquisse_ui( id = \"esquisse\", header = FALSE # dont display gadget title ) ), tabPanel( title = \"output\", tags$b(\"Code:\"), verbatimTextOutput(\"code\"), tags$b(\"Filters:\"), verbatimTextOutput(\"filters\"), tags$b(\"Data:\"), verbatimTextOutput(\"data\") ) ) ) ) ) server <- function(input, output, session) { data_r <- reactiveValues(data = iris, name = \"iris\") observe({ data_r$data <- get(input$data) data_r$name <- input$data }) results <- esquisse_server( id = \"esquisse\", data_rv = data_r ) output$code <- renderPrint({ results$code_plot }) output$filters <- renderPrint({ results$code_filters }) output$data <- renderPrint({ str(results$data) }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"module-for-saving-a-ggplot-object","dir":"Articles","previous_headings":"","what":"Module for saving a ggplot object","title":"Shiny usage","text":"module allow save ggplot object various format resize : can call module server display modal window (’s also possible display directly UI): See ?\"save-ggplot-module\" complete example.","code":"function(input, output, session) { observeEvent(input$save, { # actionButton to trigger modal save_ggplot_modal(\"ID\", \"Save plot\") # launch modal }) save_ggplot_server(\"ID\", rv) # rv is a reactiValues with a slot 'plot' }"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"module-to-render-a-plot-and-add-export-options","dir":"Articles","previous_headings":"","what":"Module to render a plot and add export options","title":"Shiny usage","text":"Add menu directly export plot, can also launch module controls (height, width, filename) clicking “options”:","code":"library(shiny) library(ggplot2) library(esquisse) ui <- fluidPage( tags$h2(\"ggplot output\"), selectInput(\"var\", \"Variable:\", names(economics)[-1]), ggplot_output(\"MYID\", width = \"600px\") ) server <- function(input, output, session) { render_ggplot(\"MYID\", { ggplot(economics) + geom_line(aes(date, !!sym(input$var))) + theme_minimal() + labs( title = \"A cool chart made with ggplot2\", subtitle = \"that you can export in various format\" ) }) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"input-widgets","dir":"Articles","previous_headings":"","what":"Input widgets","title":"Shiny usage","text":"drag--drop widget along button select geom color/palette picker exported:","code":""},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"dragulainput","dir":"Articles","previous_headings":"Input widgets","what":"dragulaInput","title":"Shiny usage","text":"","code":"ui <- fluidPage( tags$h2(\"Demo dragulaInput\"), tags$br(), dragulaInput( inputId = \"dad\", sourceLabel = \"Source\", targetsLabels = c(\"Target 1\", \"Target 2\"), choices = names(iris), width = \"400px\" ), verbatimTextOutput(outputId = \"result\") ) server <- function(input, output, session) { output$result <- renderPrint(str(input$dad)) } shinyApp(ui = ui, server = server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"dropinput","dir":"Articles","previous_headings":"Input widgets","what":"dropInput","title":"Shiny usage","text":"widget used select geom esquisser addin. can use images icons example:","code":"ui <- fluidPage( tags$h2(\"Drop Input\"), dropInput( inputId = \"mydrop\", choicesNames = tagList( list(icon(\"home\"), style = \"width: 100px;\"), list(icon(\"flash\"), style = \"width: 100px;\"), list(icon(\"cogs\"), style = \"width: 100px;\"), list(icon(\"fire\"), style = \"width: 100px;\"), list(icon(\"users\"), style = \"width: 100px;\"), list(icon(\"info\"), style = \"width: 100px;\") ), choicesValues = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\"), dropWidth = \"220px\" ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$mydrop }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"colorpicker","dir":"Articles","previous_headings":"Input widgets","what":"colorPicker","title":"Shiny usage","text":"select menu choose one several colors:","code":"ui <- fluidPage( tags$h2(\"Color Picker\"), colorPicker( inputId = \"col\", label = \"Choose a color:\", choices = scales::brewer_pal(palette = \"Dark2\")(8), textColor = \"white\" ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$col }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/articles/shiny-usage.html","id":"palettepicker","dir":"Articles","previous_headings":"Input widgets","what":"palettePicker","title":"Shiny usage","text":"select menu choose color palette:","code":"library(scales) ui <- fluidPage( tags$h2(\"Palette Picker\"), palettePicker( inputId = \"pal\", label = \"Choose a palette\", choices = list( \"Viridis\" = list( \"viridis\" = viridis_pal(option = \"viridis\")(10), \"magma\" = viridis_pal(option = \"magma\")(10), \"inferno\" = viridis_pal(option = \"inferno\")(10), \"plasma\" = viridis_pal(option = \"plasma\")(10), \"cividis\" = viridis_pal(option = \"cividis\")(10) ), \"Brewer\" = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Paired\" = brewer_pal(palette = \"Paired\")(8), \"Set1\" = brewer_pal(palette = \"Set1\")(8) ) ), textColor = c( rep(\"white\", 5), rep(\"black\", 4) ) ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$pal }) } shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Fanny Meyer. Author. Victor Perrier. Author, maintainer. Ian Carroll. Contributor. Faceting support Xiangnan Dang. Contributor. Facets rows cols, X/Y limits Nicolas Bevacqua. Copyright holder. author dragula JavaScript library Daybrush (Younkue Choi). Copyright holder. author moveable JavaScript library Zeno Rocha. Copyright holder. author clipboard JavaScript library","code":""},{"path":"https://dreamrs.github.io/esquisse/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Meyer F, Perrier V (2024). esquisse: Explore Visualize Data Interactively. R package version 2.0.1, https://github.com/dreamRs/esquisse, https://dreamrs.github.io/esquisse/.","code":"@Manual{, title = {esquisse: Explore and Visualize Your Data Interactively}, author = {Fanny Meyer and Victor Perrier}, year = {2024}, note = {R package version 2.0.1, https://github.com/dreamRs/esquisse}, url = {https://dreamrs.github.io/esquisse/}, }"},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"esquisse-","dir":"","previous_headings":"","what":"Explore and Visualize Your Data Interactively","title":"Explore and Visualize Your Data Interactively","text":"Try online : https://dreamrs.shinyapps.io/esquisse/ addin allows interactively explore data visualizing ggplot2 package. allows draw bar plots, curves, scatter plots, histograms, boxplot sf objects, export graph retrieve code reproduce graph. See online documentation : https://dreamrs.github.io/esquisse/index.html Use esquisse online : https://dreamrs.shinyapps.io/esquisse/ find bugs, please open issue","code":""},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Explore and Visualize Your Data Interactively","text":"Install CRAN : install development version GitHub : launch addin via RStudio menu esquisse::esquisser().","code":"install.packages(\"esquisse\") remotes::install_github(\"dreamRs/esquisse\")"},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"esquisse-addin","dir":"","previous_headings":"","what":"esquisse addin","title":"Explore and Visualize Your Data Interactively","text":"gif made ❤️ @mfanny removed, meantime {esquisse} evolved, latest version now looks like:","code":"esquisse::esquisser() # or with your data: esquisse::esquisser(palmerpenguins::penguins)"},{"path":"https://dreamrs.github.io/esquisse/index.html","id":"internationalization","dir":"","previous_headings":"esquisse addin","what":"Internationalization","title":"Explore and Visualize Your Data Interactively","text":"Currently can use {esquisse} following language: english (default), french, macedonian, brazilian portuguese, albanian, chinese, spanish, turkish, korean, polish, japanese, german. want another language supported, can submit Pull Request add CSV file like one used french (file located inst/i18n folder package, can see GitHub). See {datamods} vignette topic.","code":"library(esquisse) set_i18n(\"fr\") esquisser()"},{"path":"https://dreamrs.github.io/esquisse/reference/bs_theme_esquisse.html","id":null,"dir":"Reference","previous_headings":"","what":"Bootstrap Theme for Esquisse — bs_theme_esquisse","title":"Bootstrap Theme for Esquisse — bs_theme_esquisse","text":"Bootstrap Theme Esquisse","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/bs_theme_esquisse.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Bootstrap Theme for Esquisse — bs_theme_esquisse","text":"","code":"bs_theme_esquisse()"},{"path":"https://dreamrs.github.io/esquisse/reference/bs_theme_esquisse.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Bootstrap Theme for Esquisse — bs_theme_esquisse","text":"bslib::bs_theme().","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":null,"dir":"Reference","previous_headings":"","what":"Build aesthetics to use in a plot — build_aes","title":"Build aesthetics to use in a plot — build_aes","text":"Build aesthetics use plot","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build aesthetics to use in a plot — build_aes","text":"","code":"build_aes(data, ..., .list = NULL, geom = NULL)"},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build aesthetics to use in a plot — build_aes","text":"data Data use plot. ... Named list aesthetics. .list Alternative ... use preexisting named list. geom Geom use, according geom aesthetics may vary.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build aesthetics to use in a plot — build_aes","text":"expression","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/build_aes.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Build aesthetics to use in a plot — build_aes","text":"","code":"# Classic build_aes(iris, x = \"Sepal.Width\") #> Aesthetic mapping: #> * `x` -> `Sepal.Width` build_aes(iris, x = \"Sepal.Width\", y = \"Sepal.Width\") #> Aesthetic mapping: #> * `x` -> `Sepal.Width` #> * `y` -> `Sepal.Width` # Explicit geom : no change build_aes(iris, x = \"Species\", geom = \"bar\") #> Aesthetic mapping: #> * `x` -> `Species` # Little trick if data is count data df <- data.frame( LET = c(\"A\", \"B\"), VAL = c(4, 7) ) build_aes(df, x = \"LET\", y = \"VAL\", geom = \"bar\") #> Aesthetic mapping: #> * `x` -> `LET` #> * `y` -> `VAL` # e.g. : library(ggplot2) ggplot(df) + build_aes(df, x = \"LET\", y = \"VAL\", geom = \"bar\") + geom_bar(stat = \"summary\", fun = \"mean\")"},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Drag And Drop Input Widget — dragulaInput","title":"Drag And Drop Input Widget — dragulaInput","text":"Drag Drop Input Widget","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Drag And Drop Input Widget — dragulaInput","text":"","code":"dragulaInput( inputId, label = NULL, sourceLabel, targetsLabels, targetsIds = NULL, choices = NULL, choiceNames = NULL, choiceValues = NULL, selected = NULL, status = \"primary\", replace = FALSE, copySource = TRUE, badge = TRUE, ncolSource = \"auto\", ncolGrid = NULL, nrowGrid = NULL, dragulaOpts = list(), boxStyle = NULL, targetsHeight = NULL, width = NULL, height = \"100px\" )"},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Drag And Drop Input Widget — dragulaInput","text":"inputId input slot used access value. label Display label control, NULL label. sourceLabel Label display source box targetsLabels Labels target element. targetsIds Ids retrieving values server-side, NULL, default, targetsLabels used removing -alphanumeric characters. choices List values select (elements list named name rather value displayed user). argument provided, choiceNames choiceValues must provided, vice-versa. values strings; types (logicals numbers) coerced strings. choiceNames, choiceValues List names values, respectively, displayed user app correspond choice (reason, choiceNames choiceValues must length). either arguments provided, must provided choices must provided. advantage using named list choices choiceNames allows type UI object passed (tag objects, icons, HTML code, ...), instead just simple text. selected Default selected values. Must list targetsIds names. status choices displayed Bootstrap label, can use Bootstrap status color , NULL. replace choice dragged target container already containing choice, later replaced new one ? copySource replace = TRUE, elements source must copied moved ? badge Displays choices inside Bootstrap badge. Use FALSE want pass custom appearance choiceNames. ncolSource Number columns occupied source, default \"auto\", meaning full row. ncolGrid, nrowGrid Number columns / rows used place source targets boxes, see examples. dragulaOpts Options passed dragula JavaScript library (see online documentation GitHub). Note options moves, accepts invalid must valid JavaScript code evaluated client. boxStyle CSS style string customize source target container. targetsHeight Height target boxes. width Width input. height Height boxes, total input height parameter X 2 (unless targetsHeight set).","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Drag And Drop Input Widget — dragulaInput","text":"UI definition","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Drag And Drop Input Widget — dragulaInput","text":"output server-side list two slots: source targets.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/dragulaInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Drag And Drop Input Widget — dragulaInput","text":"","code":"library(shiny) library(esquisse) ui <- fluidPage( tags$h2(\"Demo dragulaInput\"), tags$br(), fluidRow( column( width = 6, dragulaInput( inputId = \"dad1\", label = \"Default:\", sourceLabel = \"Source\", targetsLabels = c(\"Target 1\", \"Target 2\"), choices = month.abb, width = \"100%\" ), verbatimTextOutput(outputId = \"result1\"), tags$br(), dragulaInput( inputId = \"dad3\", label = \"On same row:\", sourceLabel = \"Source\", targetsLabels = c(\"Target 1\", \"Target 2\"), choices = month.abb, width = \"100%\", ncolSource = 1, ncolGrid = 3 ), verbatimTextOutput(outputId = \"result3\") ), column( width = 6, dragulaInput( inputId = \"dad2\", label = \"Two rows:\", sourceLabel = \"Source\", targetsLabels = c(\"x\", \"y\", \"color\", \"fill\", \"size\", \"facet\"), choices = names(mtcars), width = \"100%\", ncolGrid = 3 ), verbatimTextOutput(outputId = \"result2\"), tags$br(), dragulaInput( inputId = \"dad4\", label = \"Two rows not filled:\", sourceLabel = \"Source\", targetsLabels = c(\"x\", \"y\", \"color\", \"fill\", \"size\"), choices = names(mtcars), width = \"100%\", ncolGrid = 3 ), verbatimTextOutput(outputId = \"result4\") ) ) ) server <- function(input, output, session) { output$result1 <- renderPrint(str(input$dad1)) output$result2 <- renderPrint(str(input$dad2)) output$result3 <- renderPrint(str(input$dad3)) output$result4 <- renderPrint(str(input$dad4)) } if (interactive()) shinyApp(ui = ui, server = server)"},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Dropdown Input — dropInput","title":"Dropdown Input — dropInput","text":"dropdown menu selecting value.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dropdown Input — dropInput","text":"","code":"dropInput( inputId, choicesNames, choicesValues, selected = NULL, dropUp = FALSE, dropWidth = NULL, dropMaxHeight = NULL, dropPreScrollable = FALSE, btnClass = \"btn-link\", width = NULL )"},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dropdown Input — dropInput","text":"inputId input slot used access value. choicesNames tagList HTML tags show dropdown menu. choicesValues Vector corresponding choicesNames retrieving values server-side. selected initial selected value, must element choicesValues, default first item choicesValues. dropUp Open menu button rather . dropWidth Width dropdown menu. dropMaxHeight Maximal height menu. dropPreScrollable Force scroll bar appear menu. btnClass Class buttons dropdown menu, default \"btn-link\", can use example \"btn-default\" display regular buttons. width width input.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/dropInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Dropdown Input — dropInput","text":"","code":"if (interactive()) { library(shiny) library(esquisse) ui <- fluidPage( tags$h2(\"Drop Input\"), dropInput( inputId = \"mydrop\", choicesNames = tagList( list(icon(\"home\"), style = \"width: 100px;\"), list(icon(\"flash\"), style = \"width: 100px;\"), list(icon(\"cogs\"), style = \"width: 100px;\"), list(icon(\"fire\"), style = \"width: 100px;\"), list(icon(\"users\"), style = \"width: 100px;\"), list(icon(\"info\"), style = \"width: 100px;\") ), choicesValues = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\"), dropWidth = \"220px\" ), verbatimTextOutput(outputId = \"res\") ) server <- function(input, output, session) { output$res <- renderPrint({ input$mydrop }) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"Deprecated functions — esquisse-deprecated","title":"Deprecated functions — esquisse-deprecated","text":"Deprecated functions","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deprecated functions — esquisse-deprecated","text":"","code":"esquisseContainer(...)"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deprecated functions — esquisse-deprecated","text":"... See esquisse_container()","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-deprecated.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Deprecated functions — esquisse-deprecated","text":"following functions deprecated removed next release: esquisseContainer : replaced esquisse_container","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-exports.html","id":null,"dir":"Reference","previous_headings":"","what":"esquisse exported operators and S3 methods — esquisse-exports","title":"esquisse exported operators and S3 methods — esquisse-exports","text":"esquisse exported operators S3 methods","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":null,"dir":"Reference","previous_headings":"","what":"Esquisse module — esquisse-module","title":"Esquisse module — esquisse-module","text":"Use esquisse module Shiny application.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Esquisse module — esquisse-module","text":"","code":"esquisse_ui( id, header = esquisse_header(), container = esquisse_container(), controls = c(\"options\", \"labs\", \"axes\", \"geoms\", \"theme\", \"filters\", \"code\"), insert_code = FALSE, play_pause = TRUE, layout_sidebar = FALSE, downloads = downloads_labels(), n_geoms = 8 ) esquisse_server( id, data_rv = NULL, name = \"data\", default_aes = c(\"fill\", \"color\", \"size\", \"group\", \"facet\"), import_from = c(\"env\", \"file\", \"copypaste\", \"googlesheets\", \"url\"), n_geoms = 8, drop_ids = TRUE, notify_warnings = NULL ) esquisse_container(width = \"100%\", height = \"700px\", fixed = FALSE) esquisse_header( import_data = TRUE, show_data = TRUE, update_variable = TRUE, create_column = TRUE, cut_variable = TRUE, update_factor = TRUE, settings = TRUE, close = TRUE, .before = NULL, .after = NULL )"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Esquisse module — esquisse-module","text":"id Module ID. header Either TRUE FALSE display esquisse header, named list names : settings, close, import show_data values TRUE FALSE display corresponding button. container Container display addin, default use esquisse_container(), see examples. Use NULL container (behavior versions <= 0.2.1). Must function. controls Controls menu displayed. Use NULL hide menus. insert_code Logical, Display button insert ggplot code current user script (work RStudio). play_pause Display play / pause button. layout_sidebar Put controls sidebar left rather chart dropdowns. downloads Export options available NULL export. See downloads_labels(). n_geoms Number geoms user can use. data_rv Either: shiny::reactiveValues() slot data containing data.frame use module slot name corresponding name data.frame used generated code. shiny::reactive() function returning data.frame. See argument name name used generated code. data.frame object. name default name use generated code. Can reactive function return single character. default_aes Default aesthetics used, can character vector reactive function returning one. import_from import data, argument passed datamods::import_server(), use NULL prevent modal appear. drop_ids Argument passed datamods::filter_data_server. Drop columns containing 90% unique values, 50 distinct values. notify_warnings See safe_ggplot(). NULL, user can make choice via settings menu, default show warnings . width, height width height container, e.g. \"400px\", \"100%\"; see htmltools::validateCssUnit(). fixed Use fixed container, e.g. use use esquisse full page. TRUE, width height ignored. Default FALSE. possible use vector CSS unit length 4 specify margins (top, right, bottom, left). import_data Show button import data. show_data Show button display data. update_variable Show button update selected variables convert . create_column Show button create new column based expression. cut_variable Show button allow convert numeric variable factor. update_factor Show button open window reorder factor levels update . settings Show button open settings modal (select aesthetics use). close Show button stop app close addin. ., .Custom content put header, typically buttons.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Esquisse module — esquisse-module","text":"reactiveValues 3 slots : code_plot : code generate plot. code_filters : list length two code reproduce filters. data : data.frame used plot (filters applied).","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse-module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Esquisse module — esquisse-module","text":"","code":"### Part of a Shiny app ### library(shiny) library(esquisse) ui <- fluidPage( theme = bs_theme_esquisse(), tags$h1(\"Use esquisse as a Shiny module\"), radioButtons( inputId = \"data\", label = \"Data to use:\", choices = c(\"iris\", \"mtcars\"), inline = TRUE ), checkboxGroupInput( inputId = \"aes\", label = \"Aesthetics to use:\", choices = c( \"fill\", \"color\", \"size\", \"shape\", \"weight\", \"group\", \"facet\", \"facet_row\", \"facet_col\" ), selected = c(\"fill\", \"color\", \"size\", \"facet\"), inline = TRUE ), esquisse_ui( id = \"esquisse\", header = FALSE, # dont display gadget title container = esquisse_container(height = \"700px\") ) ) #> Loading required namespace: plotly server <- function(input, output, session) { data_rv <- reactiveValues(data = iris, name = \"iris\") observeEvent(input$data, { if (input$data == \"iris\") { data_rv$data <- iris data_rv$name <- \"iris\" } else { data_rv$data <- mtcars data_rv$name <- \"mtcars\" } }) esquisse_server( id = \"esquisse\", data_rv = data_rv, default_aes = reactive(input$aes) ) } if (interactive()) shinyApp(ui, server) ### Whole Shiny app ### library(shiny) library(esquisse) # Load some datasets in app environment my_data <- data.frame( var1 = rnorm(100), var2 = sample(letters[1:5], 100, TRUE) ) ui <- fluidPage( theme = bs_theme_esquisse(), esquisse_ui( id = \"esquisse\", header = esquisse_header( close = FALSE, # hide the close button .after = actionButton( # custom button inputId = \"open_modal\", label = NULL, icon = icon(\"plus\") ) ), container = esquisse_container(fixed = TRUE), play_pause = FALSE, controls = c(\"settings\", \"labs\", \"axes\", \"geoms\", \"theme\", \"filters\", \"code\", \"export\"), layout_sidebar = TRUE ) ) server <- function(input, output, session) { esquisse_server(id = \"esquisse\") observeEvent(input$open_modal, { showModal(modalDialog(\"Some content\")) }) } if (interactive()) shinyApp(ui, server) ## You can also use a vector of margins for the fixed argument, # useful if you have a navbar for example library(shiny) library(esquisse) library(datamods) ui <- navbarPage( title = \"My navbar app\", theme = bs_theme_esquisse(), tabPanel( title = \"esquisse\", esquisse_ui( id = \"esquisse\", header = FALSE, container = esquisse_container( fixed = c(55, 0, 0, 0) ) ) ) ) server <- function(input, output, session) { # lauch import data modal import_modal( id = \"import-data\", from = c(\"env\", \"file\", \"copypaste\"), title = \"Import data\" ) data_imported_r <- datamods::import_server(\"import-data\") data_rv <- reactiveValues(data = data.frame()) observeEvent(data_imported_r$data(), { data_rv$data <- data_imported_r$data() data_rv$name <- data_imported_r$name() }) esquisse_server(id = \"esquisse\", data_rv = data_rv) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse.html","id":null,"dir":"Reference","previous_headings":"","what":"Explore and Visualize Your Data Interactively — esquisse","title":"Explore and Visualize Your Data Interactively — esquisse","text":"'shiny' gadget create 'ggplot2' figures interactively drag--drop map variables different aesthetics. can quickly visualize data accordingly type, export various formats, retrieve code reproduce plot.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Explore and Visualize Your Data Interactively — esquisse","text":"Fanny Meyer & Victor Perrier (@dreamRs_fr)","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisse.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Explore and Visualize Your Data Interactively — esquisse","text":"","code":"if (FALSE) { # \\dontrun{ esquisser() # launch esquisse with specific data: esquisser(mtcars) } # }"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":null,"dir":"Reference","previous_headings":"","what":"An add-in to easily create plots with ggplot2 — esquisser","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"Select data used map variables aesthetics produce chart, customize common elements get code reproduce chart.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"","code":"esquisser( data = NULL, controls = c(\"options\", \"labs\", \"axes\", \"geoms\", \"theme\", \"filters\", \"code\"), viewer = getOption(x = \"esquisse.viewer\", default = \"dialog\") )"},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"data data.frame, can pass data.frame explicitly function, otherwise choose one global environment. controls Controls menu displayed. Use NULL hide menus. viewer display gadget: \"dialog\", \"pane\" \"browser\" (see viewer).","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"NULL. can view code used produce chart, copy insert current script.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/esquisser.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"An add-in to easily create plots with ggplot2 — esquisser","text":"","code":"if (interactive()) { # Launch with : esquisser(iris) # If in RStudio it will be launched by default in dialog window # If not, it will be launched in browser # Launch esquisse in browser : esquisser(iris, viewer = \"browser\") # You can set this option in .Rprofile : options(\"esquisse.viewer\" = \"viewer\") # or options(\"esquisse.viewer\" = \"browser\") # esquisse use shiny::runApp # see ?shiny::runApp to see options # available, example to use custom port: options(\"shiny.port\" = 8080) esquisser(iris, viewer = \"browser\") }"},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":null,"dir":"Reference","previous_headings":"","what":"Potential geometries according to the data — geoms","title":"Potential geometries according to the data — geoms","text":"data variable used aesthetics, decide geometry can used one used default.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Potential geometries according to the data — geoms","text":"","code":"potential_geoms(data, mapping, auto = FALSE) potential_geoms_ref()"},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Potential geometries according to the data — geoms","text":"data data.frame mapping List aesthetic mappings use data. auto Return one geometry.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Potential geometries according to the data — geoms","text":"character vector","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/geoms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Potential geometries according to the data — geoms","text":"","code":"library(ggplot2) # One continuous variable potential_geoms( data = iris, mapping = aes(x = Sepal.Length) ) #> [1] \"histogram\" \"boxplot\" \"violin\" \"density\" # Automatic pick a geom potential_geoms( data = iris, mapping = aes(x = Sepal.Length), auto = TRUE ) #> [1] \"histogram\" # One discrete variable potential_geoms( data = iris, mapping = aes(x = Species) ) #> [1] \"bar\" # Two continuous variables potential_geoms( data = iris, mapping = aes(x = Sepal.Length, y = Sepal.Width) ) #> [1] \"point\" \"jitter\" \"line\" \"step\" \"path\" \"area\" \"smooth\" \"text\" #> [9] \"label\" \"tile\" # Reference used by esquisse to select available geoms # and decide which one to use by default potential_geoms_ref() #> x y geom auto #> 1 continuous empty histogram 1 #> 2 continuous empty boxplot 0 #> 3 continuous empty violin 0 #> 4 continuous empty density 0 #> 5 discrete empty bar 1 #> 6 time empty histogram 1 #> 7 time empty bar 0 #> 8 continuous discrete boxplot 0 #> 9 continuous discrete point 0 #> 10 continuous discrete jitter 0 #> 11 continuous discrete violin 0 #> 12 continuous discrete bar 1 #> 13 discrete continuous col 1 #> 14 discrete continuous bar 0 #> 15 discrete continuous boxplot 0 #> 16 discrete continuous point 0 #> 17 discrete continuous jitter 0 #> 18 discrete continuous violin 0 #> 19 discrete continuous text 0 #> 20 discrete continuous label 0 #> 21 continuous continuous point 1 #> 22 continuous continuous jitter 0 #> 23 continuous continuous line 0 #> 24 continuous continuous step 0 #> 25 continuous continuous path 0 #> 26 continuous continuous area 0 #> 27 continuous continuous smooth 0 #> 28 continuous continuous text 0 #> 29 continuous continuous label 0 #> 30 discrete discrete tile 1 #> 31 time continuous line 1 #> 32 time continuous point 0 #> 33 time continuous step 0 #> 34 time continuous area 0 #> 35 time continuous bar 0 #> 36 time continuous smooth 0 #> 37 empty continuous line 1 #> 38 empty continuous step 0 #> 39 empty continuous path 0 #> 40 empty continuous area 0 #> 41 continuous continuous tile 0 #> 42 discrete time tile 0 #> 43 time discrete tile 0"},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate code to create a ggplot2 — ggcall","title":"Generate code to create a ggplot2 — ggcall","text":"Generate code create ggplot2","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate code to create a ggplot2 — ggcall","text":"","code":"ggcall( data = NULL, mapping = NULL, geom = NULL, geom_args = list(), scales = NULL, scales_args = list(), coord = NULL, coord_args = list(), labs = list(), theme = NULL, theme_args = list(), facet = NULL, facet_row = NULL, facet_col = NULL, facet_args = list(), xlim = NULL, ylim = NULL )"},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate code to create a ggplot2 — ggcall","text":"data Character. Name data.frame. mapping List. Named list aesthetics. geom Character. Name geom use (without \"geom_\"). geom_args List. Arguments use geom. scales Character vector. Scale(s) use (without \"scale_\"). scales_args List. Arguments use scale(s), scales length > 1, must named list scales names. coord Character. Coordinates use (without \"coord_\"). coord_args Arguments coordinates function. labs List. Named list labels use title, subtitle, x & y axis, legends. theme Character. Name theme use (without \"theme_\"). theme_args Named list. Arguments ggplot2::theme(). facet Character vector. Names variables use ggplot2::facet_wrap. facet_row Character vector. Names row variables use ggplot2::facet_grid(). facet_col Character vector. Names col variables use ggplot2::facet_grid(). facet_args Named list. Arguments ggplot2::facet_wrap(). xlim vector length 2 representing limits x-axis. ylim vector length 2 representing limits y-axis.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generate code to create a ggplot2 — ggcall","text":"call can evaluated eval.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggcall.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate code to create a ggplot2 — ggcall","text":"","code":"# Default: ggcall() #> ggplot() # With data and aes ggcall(\"mtcars\", list(x = \"mpg\", y = \"wt\")) #> ggplot(mtcars) + aes(x = mpg, y = wt) # Evaluate the call library(ggplot2) eval(ggcall(\"mtcars\", list(x = \"mpg\", y = \"wt\"))) # With a geom: ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\"), geom = \"point\" ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + geom_point() # With options ggcall( data = \"mtcars\", mapping = list(x = \"hp\", y = \"cyl\", fill = \"color\"), geom = \"bar\", coord = \"flip\", labs = list(title = \"My title\"), theme = \"minimal\", facet = c(\"gear\", \"carb\"), theme_args = list(legend.position = \"bottom\") ) #> ggplot(mtcars) + aes(x = hp, y = cyl, fill = color) + geom_bar() + #> labs(title = \"My title\") + coord_flip() + theme_minimal() + #> theme(legend.position = \"bottom\") + facet_wrap(vars(gear, #> carb)) # Theme ggcall( \"mtcars\", list(x = \"mpg\", y = \"wt\"), theme = \"theme_minimal\", theme_args = list( panel.ontop = TRUE, legend.title = rlang::expr(element_text(face = \"bold\")) ) ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + theme_minimal() + theme(panel.ontop = TRUE, #> legend.title = element_text(face = \"bold\")) # Theme from other package than ggplot2 ggcall( \"mtcars\", list(x = \"mpg\", y = \"wt\"), theme = \"ggthemes::theme_economist\" ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + ggthemes::theme_economist() # One scale ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\", color = \"qsec\"), geom = \"point\", scales = \"color_distiller\", scales_args = list(palette = \"Blues\") ) #> ggplot(mtcars) + aes(x = mpg, y = wt, color = qsec) + geom_point() + #> scale_color_distiller(palette = \"Blues\") # Two scales ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\", color = \"qsec\", size = \"qsec\"), geom = \"point\", scales = c(\"color_distiller\", \"size_continuous\"), scales_args = list( color_distiller = list(palette = \"Greens\"), size_continuous = list(range = c(1, 20)) ) ) #> ggplot(mtcars) + aes(x = mpg, y = wt, color = qsec, size = qsec) + #> geom_point() + scale_color_distiller(palette = \"Greens\") + #> scale_size_continuous(range = c(1, 20)) # Coordinates ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\"), geom = \"point\", coord = \"fixed\" ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + geom_point() + coord_fixed() ggcall( data = \"mtcars\", mapping = list(x = \"mpg\", y = \"wt\"), geom = \"point\", coord = \"fixed\", coord_args = list(ratio = 5) ) #> ggplot(mtcars) + aes(x = mpg, y = wt) + geom_point() + coord_fixed(ratio = 5)"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":null,"dir":"Reference","previous_headings":"","what":"Render ggplot module — ggplot-output","title":"Render ggplot module — ggplot-output","text":"Display plot client allow download .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Render ggplot module — ggplot-output","text":"","code":"ggplot_output( id, width = \"100%\", height = \"400px\", downloads = downloads_labels(), ... ) downloads_labels( label = ph(\"download-simple\"), png = tagList(ph(\"image\"), \"PNG\"), pdf = tagList(ph(\"file-pdf\"), \"PDF\"), svg = tagList(ph(\"browsers\"), \"SVG\"), jpeg = tagList(ph(\"image\"), \"JPEG\"), pptx = tagList(ph(\"projector-screen\"), \"PPTX\"), more = tagList(ph(\"gear\"), i18n(\"More options\")) ) render_ggplot( id, expr, ..., env = parent.frame(), quoted = FALSE, filename = \"export-ggplot\", resizable = FALSE, use_plotly = reactive(FALSE), width = reactive(NULL), height = reactive(NULL) )"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Render ggplot module — ggplot-output","text":"id Module ID. width, height Width / Height plot, server shiny::reactive() function returning new width/height plot. downloads Labels export options, use downloads_labels() NULL disable export options. ... Parameters passed shiny::plotOutput() (ggplot_output) shiny::renderPlot() (render_ggplot). label Main label export button png, pdf, svg, jpeg, pptx Labels display export menu, use NULL disable specific format. Label \"\" button, allowing launch export modal. expr expression generates ggplot object. env environment evaluate expression. quoted expr quoted expression (quote())? useful want save expression variable. filename string filename export WITHOUT extension, added according type export. resizable Can chart size adjusted user? use_plotly shiny::reactive() function returning TRUE FALSE render plot plotly::ggplotly() .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Render ggplot module — ggplot-output","text":"Server-side, reactiveValues plot.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot-output.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Render ggplot module — ggplot-output","text":"","code":"library(shiny) library(ggplot2) library(esquisse) ui <- fluidPage( tags$h2(\"ggplot output\"), selectInput(\"var\", \"Variable:\", names(economics)[-1]), ggplot_output(\"MYID\", width = \"600px\") ) server <- function(input, output, session) { render_ggplot(\"MYID\", { ggplot(economics) + geom_line(aes(date, !!sym(input$var))) + theme_minimal() + labs( title = \"A cool chart made with ggplot2\", subtitle = \"that you can export in various format\" ) }) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":null,"dir":"Reference","previous_headings":"","what":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"can use RStudio addin interactively select ggplot objects, directly pass names function.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"","code":"ggplot_to_ppt(gg = NULL)"},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"gg character. Name(s) ggplot object(s), NULL, launch Shiny gadget.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"Path temporary PowerPoint file.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/ggplot_to_ppt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Utility to export ggplot objects to PowerPoint — ggplot_to_ppt","text":"","code":"# Shiny gadget if (interactive()) { ggplot_to_ppt() # Or with an object's name library(ggplot2) p <- ggplot(iris) + geom_point(aes(Sepal.Length, Sepal.Width)) ggplot_to_ppt(\"p\") }"},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":null,"dir":"Reference","previous_headings":"","what":"Picker input to select color(s) or palette — input-colors","title":"Picker input to select color(s) or palette — input-colors","text":"Select menu view choose color palette colors.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Picker input to select color(s) or palette — input-colors","text":"","code":"colorPicker( inputId, label, choices, selected = NULL, textColor = \"#000\", plainColor = FALSE, multiple = FALSE, pickerOpts = list(), width = NULL ) updateColorPicker( session = getDefaultReactiveDomain(), inputId, choices, textColor = \"#000\", plainColor = FALSE, multiple = FALSE ) palettePicker( inputId, label, choices, selected = NULL, textColor = \"#000\", plainColor = FALSE, pickerOpts = list(), width = NULL ) updatePalettePicker( session = getDefaultReactiveDomain(), inputId, choices, selected = NULL, textColor = \"#000\", plainColor = FALSE )"},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Picker input to select color(s) or palette — input-colors","text":"inputId input slot used access value. label Display label control, NULL label. choices List values select . Values must valid Hex colors. elements list named name rather value displayed user. selected initially selected value (multiple values multiple = TRUE). specified defaults first value single-select lists values multiple select lists. textColor Color text displayed colors, can vector length choices. plainColor Color full space choice menu. multiple selection multiple items allowed? pickerOpts Options pickerInput. width width input : 'auto', 'fit', '100px', '75%'. session Shiny session.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Picker input to select color(s) or palette — input-colors","text":"select control can added UI definition.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/input-colors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Picker input to select color(s) or palette — input-colors","text":"","code":"# colorPicker ------------------------------------------------------------- library(shiny) library(esquisse) library(scales) ui <- fluidPage( tags$h2(\"colorPicker examples\"), fluidRow( column( width = 3, colorPicker( inputId = \"col1\", label = \"With a vector of colors:\", choices = brewer_pal(palette = \"Dark2\")(8) ), verbatimTextOutput(\"res1\"), colorPicker( inputId = \"col5\", label = \"Update colors:\", choices = brewer_pal(palette = \"Blues\", direction = -1)(8), textColor = \"#FFF\" ), verbatimTextOutput(\"res5\"), radioButtons( \"update\", \"Colors\", c(\"Blues\", \"Greens\", \"Reds\"), inline = TRUE ) ), column( width = 3, colorPicker( inputId = \"col2\", label = \"Change text color:\", choices = brewer_pal(palette = \"Blues\")(8), textColor = c(\"black\", \"black\", \"black\", \"white\", \"white\", \"white\", \"white\", \"white\") ), verbatimTextOutput(\"res2\") ), column( width = 3, colorPicker( inputId = \"col3\", label = \"With a list of vector of colors:\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Greens\" = brewer_pal(palette = \"Greens\")(8) ) ), verbatimTextOutput(\"res3\") ), column( width = 3, colorPicker( inputId = \"col4\", label = \"Plain color & multiple choices:\", choices = brewer_pal(palette = \"Paired\")(8), plainColor = TRUE, multiple = TRUE, pickerOpts = list(`selected-text-format`= \"count > 3\") ), verbatimTextOutput(\"res4\") ) ) ) server <- function(input, output, session) { output$res1 <- renderPrint(input$col1) output$res2 <- renderPrint(input$col2) output$res3 <- renderPrint(input$col3) output$res4 <- renderPrint(input$col4) output$res5 <- renderPrint(input$col5) observeEvent(input$update, { updateColorPicker( inputId = \"col5\", choices = brewer_pal(palette = input$update, direction = -1)(8), textColor = \"#FFF\" ) }) } if (interactive()) { shinyApp(ui, server) } # palettePicker ----------------------------------------------------------- library(shiny) library(esquisse) library(scales) ui <- fluidPage( tags$h2(\"pickerColor examples\"), fluidRow( column( width = 4, palettePicker( inputId = \"pal1\", label = \"Select a palette:\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8) ) ), verbatimTextOutput(\"res1\"), palettePicker( inputId = \"pal4\", label = \"Update palette:\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8) ) ), verbatimTextOutput(\"res4\"), radioButtons( \"update\", \"Palettes:\", c(\"default\", \"viridis\", \"brewer\"), inline = TRUE ) ), column( width = 4, palettePicker( inputId = \"pal2\", label = \"With a list of palette:\", choices = list( \"Viridis\" = list( \"viridis\" = viridis_pal(option = \"viridis\")(10), \"magma\" = viridis_pal(option = \"magma\")(10), \"inferno\" = viridis_pal(option = \"inferno\")(10), \"plasma\" = viridis_pal(option = \"plasma\")(10), \"cividis\" = viridis_pal(option = \"cividis\")(10) ), \"Brewer\" = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Paired\" = brewer_pal(palette = \"Paired\")(8), \"Set1\" = brewer_pal(palette = \"Set1\")(8) ) ), textColor = c( rep(\"white\", 5), rep(\"black\", 4) ) ), verbatimTextOutput(\"res2\") ), column( width = 4, palettePicker( inputId = \"pal3\", label = \"With plain colors:\", choices = list( \"BrBG\" = brewer_pal(palette = \"BrBG\")(8), \"PiYG\" = brewer_pal(palette = \"PiYG\")(8), \"PRGn\" = brewer_pal(palette = \"PRGn\")(8), \"PuOr\" = brewer_pal(palette = \"PuOr\")(8), \"RdBu\" = brewer_pal(palette = \"RdBu\")(8), \"RdGy\" = brewer_pal(palette = \"RdGy\")(8), \"RdYlBu\" = brewer_pal(palette = \"RdYlBu\")(8), \"RdYlGn\" = brewer_pal(palette = \"RdYlGn\")(8), \"Spectral\" = brewer_pal(palette = \"Spectral\")(8) ), plainColor = TRUE, textColor = \"white\" ), verbatimTextOutput(\"res3\") ) ) ) server <- function(input, output, session) { output$res1 <- renderPrint(input$pal1) output$res2 <- renderPrint(input$pal2) output$res3 <- renderPrint(input$pal3) output$res4 <- renderPrint(input$pal4) observeEvent(input$update, { if (input$update == \"default\") { updatePalettePicker( inputId = \"pal4\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8) ) ) } else if (input$update == \"viridis\") { updatePalettePicker( inputId = \"pal4\", choices = list( \"viridis\" = viridis_pal(option = \"viridis\")(10), \"magma\" = viridis_pal(option = \"magma\")(10), \"inferno\" = viridis_pal(option = \"inferno\")(10), \"plasma\" = viridis_pal(option = \"plasma\")(10), \"cividis\" = viridis_pal(option = \"cividis\")(10) ), textColor = \"#FFF\" ) } else if (input$update == \"brewer\") { updatePalettePicker( inputId = \"pal4\", choices = list( \"Blues\" = brewer_pal(palette = \"Blues\")(8), \"Reds\" = brewer_pal(palette = \"Reds\")(8), \"Paired\" = brewer_pal(palette = \"Paired\")(8), \"Set1\" = brewer_pal(palette = \"Set1\")(8) ) ) } }) } if (interactive()) { shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":null,"dir":"Reference","previous_headings":"","what":"Match list of arguments to arguments of geometry — match_geom_args","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"Match list arguments arguments geometry","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"","code":"match_geom_args( geom, args, add_aes = TRUE, mapping = list(), add_mapping = FALSE, exclude_args = NULL, envir = \"ggplot2\" )"},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"geom Character. name geometry. args Named list, parameters matched geometry arguments. add_aes Add aesthetics parameters (like size, fill, ...). mapping Mapping used plot, avoid setting fixed aesthetics parameters. add_mapping Add mapping argument. exclude_args Character vector arguments exclude, default exclude aesthetics names. envir Package environment search .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"list().","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/match_geom_args.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Match list of arguments to arguments of geometry — match_geom_args","text":"","code":"# List of parameters params <- list( bins = 30, scale = \"width\", adjust = 2, position = \"stack\", size = 1.6, fill = \"#112246\" ) # Search arguments according to geom match_geom_args(geom = \"histogram\", args = params) #> $bins #> [1] 30 #> #> $position #> [1] \"stack\" #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"violin\", args = params) #> $scale #> [1] \"width\" #> #> $position #> [1] \"stack\" #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"bar\", args = params, add_aes = FALSE) #> $position #> [1] \"stack\" #> match_geom_args(geom = \"point\", args = params) #> $position #> [1] \"stack\" #> #> $size #> [1] 1.6 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"point\", args = params, add_aes = FALSE) #> $position #> [1] \"stack\" #>"},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":null,"dir":"Reference","previous_headings":"","what":"Safely render a ggplot in Shiny application — safe_ggplot","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"Safely render ggplot Shiny application","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"","code":"safe_ggplot( expr, data = NULL, show_notification = c(\"always\", \"once\", \"never\"), session = shiny::getDefaultReactiveDomain() )"},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"expr Code produce ggplot object. data Argument passed eval_tidy evaluate expression. show_notification Strategy notifications warning occurs: \"always\" : default, show notifications warnings \": show notification per warning \"never\" : display notifications. session Session object send notification .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"Output ggplot_build.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/safe_ggplot.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Safely render a ggplot in Shiny application — safe_ggplot","text":"","code":"if (interactive()) { library(shiny) library(ggplot2) ui <- fluidPage( fluidRow( column( width = 3, selectInput( inputId = \"var\", label = \"Var:\", choices = c(\"Sepal.Width\", \"Do.Not.Exist\") ) ), column( width = 9, plotOutput(outputId = \"plot\") ) ) ) server <- function(input, output, session) { output$plot <- renderPlot({ p <- ggplot(iris) + geom_point(aes_string(\"Sepal.Length\", input$var)) safe_ggplot(p) }) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":null,"dir":"Reference","previous_headings":"","what":"Save ggplot module — save-ggplot-module","title":"Save ggplot module — save-ggplot-module","text":"Save ggplot object various format resize saving.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Save ggplot module — save-ggplot-module","text":"","code":"save_ggplot_ui( id, output_format = c(\"png\", \"pdf\", \"svg\", \"jpeg\", \"bmp\", \"eps\", \"tiff\") ) save_ggplot_modal( id, title = NULL, output_format = c(\"png\", \"pdf\", \"svg\", \"jpeg\", \"bmp\", \"eps\", \"tiff\") ) save_ggplot_server(id, plot_rv)"},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Save ggplot module — save-ggplot-module","text":"id Module ID. output_format Output formats offered user. title Modal's title. plot_rv reactiveValues slot plot containing ggplot object.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Save ggplot module — save-ggplot-module","text":"value. Use UI & server shiny application.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/save-ggplot-module.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Save ggplot module — save-ggplot-module","text":"","code":"library(shiny) library(ggplot2) library(esquisse) ui <- fluidPage( tags$h2(\"Save a ggplot\"), selectInput(\"var\", \"Variable:\", names(economics)[-1]), plotOutput(\"plot\", width = \"600px\"), actionButton(\"save\", \"Save this plot\") ) server <- function(input, output, session) { rv <- reactiveValues(plot = NULL) output$plot <- renderPlot({ rv$plot <- ggplot(economics) + geom_line(aes(date, !!sym(input$var))) + theme_minimal() rv$plot }) observeEvent(input$save, { save_ggplot_modal(\"ID\", \"Save plot\") }) save_ggplot_server(\"ID\", rv) } if (interactive()) shinyApp(ui, server)"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Update Dragula Input — updateDragulaInput","title":"Update Dragula Input — updateDragulaInput","text":"Update dragulaInput() widget server-side.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Update Dragula Input — updateDragulaInput","text":"","code":"updateDragulaInput( session, inputId, choices = NULL, choiceNames = NULL, choiceValues = NULL, selected = NULL, selectedNames = NULL, selectedValues = NULL, badge = TRUE, status = \"primary\" )"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Update Dragula Input — updateDragulaInput","text":"session session object passed function given shinyServer. inputId input slot used access value. choices List values select (elements list named name rather value displayed user). argument provided, choiceNames choiceValues must provided, vice-versa. values strings; types (logicals numbers) coerced strings. choiceNames, choiceValues List names values, respectively, displayed user app correspond choice (reason, choiceNames choiceValues must length). either arguments provided, must provided choices must provided. advantage using named list choices choiceNames allows type UI object passed (tag objects, icons, HTML code, ...), instead just simple text. selected Default selected values. Must list targetsIds names. selectedNames, selectedValues Update selected items custom names values. badge Displays choices inside Bootstrap badge. Use FALSE want pass custom appearance choiceNames. status choices displayed Bootstrap label, can use Bootstrap status color , NULL.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/updateDragulaInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Update Dragula Input — updateDragulaInput","text":"","code":"if (interactive()) { library(\"shiny\") library(\"esquisse\") ui <- fluidPage( tags$h2(\"Update dragulaInput\"), radioButtons( inputId = \"update\", label = \"Dataset\", choices = c(\"iris\", \"mtcars\") ), tags$br(), dragulaInput( inputId = \"myDad\", sourceLabel = \"Variables\", targetsLabels = c(\"X\", \"Y\", \"fill\", \"color\", \"size\"), choices = names(iris), replace = TRUE, width = \"400px\", status = \"success\" ), verbatimTextOutput(outputId = \"result\") ) server <- function(input, output, session) { output$result <- renderPrint(str(input$myDad)) observeEvent(input$update, { if (input$update == \"iris\") { updateDragulaInput( session = session, inputId = \"myDad\", choices = names(iris), status = \"success\" ) } else { updateDragulaInput( session = session, inputId = \"myDad\", choices = names(mtcars) ) } }, ignoreInit = TRUE) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":null,"dir":"Reference","previous_headings":"","what":"Change the value of a drop input on the client — updateDropInput","title":"Change the value of a drop input on the client — updateDropInput","text":"Change value drop input client","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Change the value of a drop input on the client — updateDropInput","text":"","code":"updateDropInput(session, inputId, selected = NULL, disabled = NULL)"},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Change the value of a drop input on the client — updateDropInput","text":"session session object passed function given shinyServer. inputId id input object. selected initially selected value. disabled Choices (choicesValues) disable.","code":""},{"path":[]},{"path":"https://dreamrs.github.io/esquisse/reference/updateDropInput.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Change the value of a drop input on the client — updateDropInput","text":"","code":"if (interactive()) { library(shiny) library(esquisse) myChoices <- tagList( list(icon(\"home\"), style = \"width: 100px;\"), list(icon(\"flash\"), style = \"width: 100px;\"), list(icon(\"cogs\"), style = \"width: 100px;\"), list(icon(\"fire\"), style = \"width: 100px;\"), list(icon(\"users\"), style = \"width: 100px;\"), list(icon(\"info\"), style = \"width: 100px;\") ) ui <- fluidPage( tags$h2(\"Update Drop Input\"), fluidRow( column( width = 6, dropInput( inputId = \"mydrop\", choicesNames = myChoices, choicesValues = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\"), dropWidth = \"220px\" ), verbatimTextOutput(outputId = \"res\") ), column( width = 6, actionButton(\"home\", \"Select home\"), actionButton(\"flash\", \"Select flash\"), actionButton(\"cogs\", \"Select cogs\"), actionButton(\"fire\", \"Select fire\"), actionButton(\"users\", \"Select users\"), actionButton(\"info\", \"Select info\"), checkboxGroupInput( inputId = \"disabled\", label = \"Choices to disable\", choices = c(\"home\", \"flash\", \"cogs\", \"fire\", \"users\", \"info\") ), actionButton(\"disable\", \"Disable\") ) ) ) server <- function(input, output, session) { output$res <- renderPrint({ input$mydrop }) observeEvent(input$home, { updateDropInput(session, \"mydrop\", \"home\") }) observeEvent(input$flash, { updateDropInput(session, \"mydrop\", \"flash\") }) observeEvent(input$cogs, { updateDropInput(session, \"mydrop\", \"cogs\") }) observeEvent(input$fire, { updateDropInput(session, \"mydrop\", \"fire\") }) observeEvent(input$users, { updateDropInput(session, \"mydrop\", \"users\") }) observeEvent(input$info, { updateDropInput(session, \"mydrop\", \"info\") }) observeEvent(input$disable, { if (!is.null(input$disabled)) { updateDropInput(session, \"mydrop\", disabled = input$disabled) } else { updateDropInput(session, \"mydrop\", disabled = character(0)) } }) } shinyApp(ui, server) }"},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":null,"dir":"Reference","previous_headings":"","what":"Automatically select appropriate color scale — which_pal_scale","title":"Automatically select appropriate color scale — which_pal_scale","text":"Automatically select appropriate color scale","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Automatically select appropriate color scale — which_pal_scale","text":"","code":"which_pal_scale( mapping, palette = \"ggplot2\", data = NULL, fill_type = c(\"continuous\", \"discrete\"), color_type = c(\"continuous\", \"discrete\"), reverse = FALSE )"},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Automatically select appropriate color scale — which_pal_scale","text":"mapping Aesthetics used ggplot. palette Color palette. data optional data.frame choose right type variables. fill_type, color_type Scale use according variable used fill/color aesthetic : \"discrete\" \"continuous\". Ignored data provided: guessed data. reverse Reverse colors order .","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Automatically select appropriate color scale — which_pal_scale","text":"list","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/which_pal_scale.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Automatically select appropriate color scale — which_pal_scale","text":"","code":"library(ggplot2) # Automatic guess according to data which_pal_scale( mapping = aes(fill = Sepal.Length), palette = \"ggplot2\", data = iris ) #> $scales #> [1] \"scale_fill_gradient\" #> #> $args #> list() #> which_pal_scale( mapping = aes(fill = Species), palette = \"ggplot2\", data = iris ) #> $scales #> [1] \"scale_fill_hue\" #> #> $args #> $args$scale_fill_hue #> $args$scale_fill_hue$direction #> [1] 1 #> #> #> # Explicitly specify type which_pal_scale( mapping = aes(color = variable), palette = \"Blues\", color_type = \"discrete\" ) #> $scales #> [1] \"scale_color_brewer\" #> #> $args #> $args$scale_color_brewer #> $args$scale_color_brewer$palette #> [1] \"Blues\" #> #> $args$scale_color_brewer$direction #> [1] 1 #> #> #> # Both scales which_pal_scale( mapping = aes(color = var1, fill = var2), palette = \"Blues\", color_type = \"discrete\", fill_type = \"continuous\" ) #> $scales #> [1] \"scale_fill_distiller\" \"scale_color_brewer\" #> #> $args #> $args$scale_fill_distiller #> $args$scale_fill_distiller$palette #> [1] \"Blues\" #> #> $args$scale_fill_distiller$direction #> [1] 1 #> #> #> $args$scale_color_brewer #> $args$scale_color_brewer$palette #> [1] \"Blues\" #> #> $args$scale_color_brewer$direction #> [1] 1 #> #> #>"},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-201","dir":"Changelog","previous_headings":"","what":"esquisse 2.0.1","title":"esquisse 2.0.1","text":"CRAN release: 2024-09-18 Fixed bug Use Specific Colors mapping variable color #276. Fixed bug n_geoms different ui server #272. Update manual Chinese translation cn.csv @YaoxiangLi #273.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-200","dir":"Changelog","previous_headings":"","what":"esquisse 2.0.0","title":"esquisse 2.0.0","text":"CRAN release: 2024-05-25 New app use esquisse online: https://dreamrs.shinyapps.io/esquisse/. Support Plotly, transforming charts ggplotly. Ability use multiple geometries respective aesthetics. New layout available display controls inside accordeons sidebar. Update variables classes names Create new variable based R expression Cut numeric variable factor Re-order factor levels Controls reorganized following categories: options, labs, axes, geoms, theme, filters, code, export","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-121","dir":"Changelog","previous_headings":"","what":"esquisse 1.2.1","title":"esquisse 1.2.1","text":"Add alpha transparency aes setting, @MajoroMask.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-120","dir":"Changelog","previous_headings":"","what":"esquisse 1.2.0","title":"esquisse 1.2.0","text":"CRAN release: 2024-01-10 Warning messages now displayed per session, user can choose via settings menu display . ’re using esquisse_server() module, ’s new notify_warnings = argument choosing notifications: display , per warning never display . esquisse_server() : support reactive functions data_rv argument. Allow esquisse_server() initialized NULL without forcing import module appear using import_from = NULL #232. New geom available interface : geom_path. esquisse_ui(): ability display element module (header’s button, play/pause button, export options). safe_ggplot() new argument show_notification allow displaying notifications displaying theme per session. i18n: new translations added: polish, activate set_i18n(\"pl\"), thanks @jakub-jedrusiak japanese, activate set_i18n(\"ja\"), thanks @nissinbo german, activate set_i18n(\"de\"), thanks @1O","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-112","dir":"Changelog","previous_headings":"","what":"esquisse 1.1.2","title":"esquisse 1.1.2","text":"CRAN release: 2022-09-01 i18n: new translations added: turkish, activate set_i18n(\"tr\"), thanks @sbalci italian, activate set_i18n(\"\"), thanks @SantiagoGiordano chinese, activate set_i18n(\"cn\"), thanks @xmusphlkg korean, activate set_i18n(\"kr\"), thanks @ChangwooLim Bootstrap 5 support.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-111","dir":"Changelog","previous_headings":"","what":"esquisse 1.1.1","title":"esquisse 1.1.1","text":"CRAN release: 2022-05-03 Play/Pause button back: allow set reactivity “pause” multiple changes, avoiding render intermediate plots. i18n: new translations added: spanish, activate set_i18n(\"es\"), thanks @dnldelarosa albanian (updated), activate set_i18n(\"al\"), thanks @EGjika portuguese, activate set_i18n(\"pt\"), thanks @mribeirodantas","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"bug-fixes-1-1-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"esquisse 1.1.1","text":"Fix selected argument dragulaInput() ignored outside bookmarking.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-110","dir":"Changelog","previous_headings":"","what":"esquisse 1.1.0","title":"esquisse 1.1.0","text":"CRAN release: 2022-01-07 i18n: 🇫🇷 french translations added, activate set_i18n(\"fr\"). i18n: 🇲🇰 macedonian translations added, activate set_i18n(\"mk\"), thanks @novica. i18n: 🇦🇱 albanian translations added, activate set_i18n(\"al\"), thanks @novica. Added geom_jitter() possible geom. Added possibility add jittered points boxplot.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-102","dir":"Changelog","previous_headings":"","what":"esquisse 1.0.2","title":"esquisse 1.0.2","text":"CRAN release: 2021-07-05 Use named character vector scale manual instead list (generated code). save_ggplot_modal() / save_ggplot_ui(): added output_format argument select exported format allowed. Fix bug data imported source environment #154, #169 Fix bug dragulaInput() / updateDragulaInput() selected values.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-101","dir":"Changelog","previous_headings":"","what":"esquisse 1.0.1","title":"esquisse 1.0.1","text":"CRAN release: 2021-04-20 Corrected bug using sf objects (fix #147). Use pkg::data notation data used addin comes package (fix #150). Corrected bug labs’ input controls panel disabled (fix #148)","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-100","dir":"Changelog","previous_headings":"","what":"esquisse 1.0.0","title":"esquisse 1.0.0","text":"CRAN release: 2021-04-12 Ability select aesthetics parameters use New module import data package datamods Possibility define manual color palette format exporting plots: png, pdf, svg, jpeg, pptx New function render ggplot add export options: ggplot_output() / render_ggplot() New module export plot: save_ggplot_ui() / save_ggplot_server() Options setting title, subtitle, axis labels font size / weight, alignment Added geom step ability select shape aesthetic used Allowing geom_point plotting Time vs Continuous Data @matton2","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-031","dir":"Changelog","previous_headings":"","what":"esquisse 0.3.1","title":"esquisse 0.3.1","text":"CRAN release: 2020-09-27 facet wrap displays @xiangnandang facet_row facet_col features allow facet_grid call ggplot2 @xiangnandang x y limits plots @xiangnandang Check data null changing datasets @trafficonese. New function updateDragulaInput() update dragulaInput() server side. dragulaInput() two new arguments: ncolSource ncolGrid create grid layout source targets boxes.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-030","dir":"Changelog","previous_headings":"","what":"esquisse 0.3.0","title":"esquisse 0.3.0","text":"CRAN release: 2020-01-27 Fixed bug dragulaInput preventing change variable main addin. chooseDataServer() new argument selectedTypes set types variables selected default. #95 Packages {ggthemes} {hrbrthemes} now Suggests.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-023","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.3","title":"esquisse 0.2.3","text":"CRAN release: 2020-01-09 New argument disable_filters esquisserUI() disable ability filter data. Enable bookmarking module filterDF. filterDF() module handle missing values correctly. filterDF() two new arguments : drop_ids : logical, drop column unique values, picker allow use shinyWidgets::pickerInput. Code generated : affectation {dplyr} code, pipe used send code {ggplot2} (mentioned #79)","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-022","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.2","title":"esquisse 0.2.2","text":"CRAN release: 2019-08-22 Added esquisseContainer() better integrate esquisse module shiny application. New functions colorPicker() palettePicker() select color palette (select control used main addin). New argument insert_code esquisserUI() hide “Insert script button”.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"breaking-changes-0-2-2","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"esquisse 0.2.2","text":"using esquisse module shiny, ’s necessary anymore put esquisseUI container, one now added via argument esquisseUI(container = ...) :","code":"# old tags$div( style = \"height: 700px;\", esquisserUI( id = \"esquisse\" ) ) # new esquisserUI( id = \"esquisse\", container = esquisseContainer(height = \"700px\") )"},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-021","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.1","title":"esquisse 0.2.1","text":"CRAN release: 2019-07-01 Fix bug adding smooth line (missing import geom_smooth). Support themes scales (color/fill) {hrbrthemes}. Set labels fill, color size aesthetics.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-020","dir":"Changelog","previous_headings":"","what":"esquisse 0.2.0","title":"esquisse 0.2.0","text":"CRAN release: 2019-06-20 Now use rlang generate ggplot code. Code generated filtering data available ggplot code, use dplyr syntax. #19, #46 Ability set scales argument facet_wrap (fixed, free, free_x, free_y). #47 Support scales continuous transformation (log1p, log, sqrt, reverse, …). #24","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-018","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.8","title":"esquisse 0.1.8","text":"Support group aesthetic. New supported geom: geom_area.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-017","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.7","title":"esquisse 0.1.7","text":"CRAN release: 2018-11-14 Play/Pause button stop reactivity creating plot (prevent plot update time make change). Support palette viridisLite.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-016","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.6","title":"esquisse 0.1.6","text":"CRAN release: 2018-10-26 Support sf objects. Use esquisse shiny module. Facets support thanks @itcarroll (#30) New import data modules. Fix bug launching addin RStudio #25","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-015","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.5","title":"esquisse 0.1.5","text":"CRAN release: 2018-09-28 Module coerce variable different type. Scroll data lot variables. Prevent filter discrete variables 100 unique elements.","code":""},{"path":"https://dreamrs.github.io/esquisse/news/index.html","id":"esquisse-010","dir":"Changelog","previous_headings":"","what":"esquisse 0.1.0","title":"esquisse 0.1.0","text":"Addin make ggplot.","code":""}]