From 3cd0c8bffb2fd1367cab8359251910b71599904b Mon Sep 17 00:00:00 2001 From: pvictor Date: Thu, 4 Apr 2024 09:16:14 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20dreamRs/?= =?UTF-8?q?esquisse@41974ecc6b9855e769e943815adf7b46de85204f=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgdown.yml | 2 +- reference/esquisse-module.html | 5 +++++ search.json | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgdown.yml b/pkgdown.yml index dddc9a1c..d2f99ccb 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-04-04T06:14Z +last_built: 2024-04-04T09:15Z urls: reference: https://dreamrs.github.io/esquisse/reference article: https://dreamrs.github.io/esquisse/articles diff --git a/reference/esquisse-module.html b/reference/esquisse-module.html index ac72eb73..436b4f41 100644 --- a/reference/esquisse-module.html +++ b/reference/esquisse-module.html @@ -84,6 +84,7 @@

Usage esquisse_header( import_data = TRUE, show_data = TRUE, + update_variable = TRUE, settings = TRUE, close = TRUE ) @@ -179,6 +180,10 @@

Arguments 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` #> * `weight` -> `VAL` # e.g. : library(ggplot2) ggplot(df) + build_aes(df, x = \"LET\", y = \"VAL\", geom = \"bar\") + geom_bar()"},{"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(\"labs\", \"parameters\", \"appearance\", \"filters\", \"code\"), insert_code = FALSE, play_pause = TRUE, layout_sidebar = FALSE, downloads = downloads_labels() ) esquisse_server( id, data_rv = NULL, name = \"data\", default_aes = c(\"fill\", \"color\", \"size\", \"group\", \"facet\"), import_from = c(\"env\", \"file\", \"copypaste\", \"googlesheets\", \"url\"), drop_ids = TRUE, notify_warnings = NULL ) esquisse_container(width = \"100%\", height = \"700px\", fixed = FALSE) esquisse_header( import_data = TRUE, show_data = TRUE, settings = TRUE, close = TRUE )"},{"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(). 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 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. settings Show button open settings modal (select aesthetics use). close Show button stop app close addin.","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 container = esquisse_container(fixed = TRUE), play_pause = FALSE, controls = c(\"labs\", \"parameters\", \"appearance\", \"filters\", \"code\", \"export\"), layout_sidebar = TRUE ) ) server <- function(input, output, session) { esquisse_server(id = \"esquisse\") } 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) { 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(\"labs\", \"parameters\", \"appearance\", \"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/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, 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_\"). labs List. Named list labels use title, subtitle, x & y axis, legends. theme Character. Name theme use (without \"theme_\"). theme_args Named list. Arguments theme. facet Character vector. Names variables use facet_wrap. facet_row Character vector. Names row variables use facet_grid. facet_col Character vector. Names col variables use facet_grid. facet_args Named list. Arguments 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))"},{"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, 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. 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 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"violin\", args = params) #> $scale #> [1] \"width\" #> #> $adjust #> [1] 2 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"bar\", args = params, add_aes = FALSE) #> named list() match_geom_args(geom = \"point\", args = params) #> $size #> [1] 1.6 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"point\", args = params, add_aes = FALSE) #> named list()"},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":null,"dir":"Reference","previous_headings":"","what":"Potential geometries according to the data — potential_geoms","title":"Potential geometries according to the data — potential_geoms","text":"Potential geometries according data","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Potential geometries according to the data — potential_geoms","text":"","code":"potential_geoms(data, mapping, auto = FALSE)"},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Potential geometries according to the data — potential_geoms","text":"data data.frame mapping List aesthetic mappings use data. auto Return one geometry.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Potential geometries according to the data — potential_geoms","text":"character vector","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Potential geometries according to the data — potential_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\" \"tile\""},{"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-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 1.2.0.9000, 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 1.2.0.9000, 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":"purpose add-let explore data quickly extract information hold. can create visualization {ggplot2}, filter data {dplyr} retrieve generated code. 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 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` #> * `weight` -> `VAL` # e.g. : library(ggplot2) ggplot(df) + build_aes(df, x = \"LET\", y = \"VAL\", geom = \"bar\") + geom_bar()"},{"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(\"labs\", \"parameters\", \"appearance\", \"filters\", \"code\"), insert_code = FALSE, play_pause = TRUE, layout_sidebar = FALSE, downloads = downloads_labels() ) esquisse_server( id, data_rv = NULL, name = \"data\", default_aes = c(\"fill\", \"color\", \"size\", \"group\", \"facet\"), import_from = c(\"env\", \"file\", \"copypaste\", \"googlesheets\", \"url\"), 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, settings = TRUE, close = TRUE )"},{"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(). 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 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 . settings Show button open settings modal (select aesthetics use). close Show button stop app close addin.","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 container = esquisse_container(fixed = TRUE), play_pause = FALSE, controls = c(\"labs\", \"parameters\", \"appearance\", \"filters\", \"code\", \"export\"), layout_sidebar = TRUE ) ) server <- function(input, output, session) { esquisse_server(id = \"esquisse\") } 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) { 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(\"labs\", \"parameters\", \"appearance\", \"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/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, 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_\"). labs List. Named list labels use title, subtitle, x & y axis, legends. theme Character. Name theme use (without \"theme_\"). theme_args Named list. Arguments theme. facet Character vector. Names variables use facet_wrap. facet_row Character vector. Names row variables use facet_grid. facet_col Character vector. Names col variables use facet_grid. facet_args Named list. Arguments 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))"},{"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, 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. 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 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"violin\", args = params) #> $scale #> [1] \"width\" #> #> $adjust #> [1] 2 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"bar\", args = params, add_aes = FALSE) #> named list() match_geom_args(geom = \"point\", args = params) #> $size #> [1] 1.6 #> #> $fill #> [1] \"#112246\" #> match_geom_args(geom = \"point\", args = params, add_aes = FALSE) #> named list()"},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":null,"dir":"Reference","previous_headings":"","what":"Potential geometries according to the data — potential_geoms","title":"Potential geometries according to the data — potential_geoms","text":"Potential geometries according data","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Potential geometries according to the data — potential_geoms","text":"","code":"potential_geoms(data, mapping, auto = FALSE)"},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Potential geometries according to the data — potential_geoms","text":"data data.frame mapping List aesthetic mappings use data. auto Return one geometry.","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Potential geometries according to the data — potential_geoms","text":"character vector","code":""},{"path":"https://dreamrs.github.io/esquisse/reference/potential_geoms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Potential geometries according to the data — potential_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\" \"tile\""},{"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-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":""}]