simplevis is a package of wrapper functions to make ‘ggplot2’ and ‘leaflet’ visualisation easier and prettier.
simplevis provides the following types of ggplot:
For each ggplot type, 4 functions are available.
ggplot not coloured or faceted (e.g. ggplot_hbar)plot_data <- ggplot2::diamonds %>%
mutate(cut = stringr::str_to_sentence(cut)) %>%
group_by(cut) %>%
summarise(average_price = mean(price)) %>%
mutate(average_price = round(average_price / 1000, 1)) %>%
mutate(cut = factor(cut, levels = c("Fair", "Good", "Very good", "Premium", "Ideal")))
ggplot_hbar(plot_data, average_price, cut,
title = "Average diamond price by cut",
x_title = "Average price ($US thousands)",
y_title = "Cut")ggplot coloured, but not faceted (e.g. ggplot_hbar_col)plot_data <- ggplot2::diamonds %>%
mutate(cut = stringr::str_to_sentence(cut)) %>%
group_by(cut, clarity) %>%
summarise(average_price = mean(price)) %>%
mutate(average_price = round(average_price / 1000, 1))
ggplot_hbar_col(plot_data, average_price, cut, clarity,
title = "Average diamond price by cut and clarity",
x_title = "Average price ($US thousands)",
y_title = "Cut")ggplot facetted, but not coloured (e.g. ggplot_hbar_facet)plot_data <- ggplot2::diamonds %>%
mutate(cut = stringr::str_to_sentence(cut)) %>%
group_by(cut, clarity) %>%
summarise(average_price = mean(price)) %>%
mutate(average_price = round(average_price / 1000, 1))
ggplot_hbar_facet(plot_data, average_price, cut, clarity,
facet_ncol = 4,
title = "Average diamond price by cut and clarity",
x_title = "Average price ($US thousands)",
y_title = "Cut")ggplot coloured and facetted (e.g. ggplot_hbar_col_facet)plot_data <- ggplot2::diamonds %>%
mutate(cut = stringr::str_to_sentence(cut)) %>%
group_by(cut, clarity, color) %>%
summarise(average_price = mean(price)) %>%
mutate(average_price = round(average_price / 1000, 1))
ggplot_hbar_col_facet(plot_data, average_price, color, clarity, cut,
title = "Average diamond price by colour, clarity and cut",
x_title = "Average price ($US thousands)",
y_title = "Colour")These ggplot graphs have been designed that users can convert them easily to html interactive objects by wrapping them in plotly::ggplotly(plot). A customised tooltip can be provided using the text_var argument in simplevis functions with plotly::ggplotly(plot, tooltip = "text"). Automated text columns can be created using the mutate_text function.
plot_data <- storms %>%
group_by(year) %>%
summarise(average_wind = round(mean(wind), 2))
plot <- ggplot_vbar(data = plot_data,
x_var = year,
y_var = average_wind,
title = "Average wind speed of Atlantic storms, 1975\u20132015",
x_title = "Year",
y_title = "Average maximum sustained wind speed (knots)")
plotly::ggplotly(plot) %>%
plotly_camera() The variable types supported by the different groups of functions are outlined below.
simplevis provides simple feature (sf) maps (i.e. maps with point, line or polygon features).
Spatial-temporal array (i.e. stars) maps may be supported in future.
The following functions are available:
ggplot_sfggplot_sf_colggplot_sf_facetggplot_sf_col_facetThese functions work in the same way as the ggplot graph functions, but with the following key differences:
sf object.POINT/MULTIPOINT, LINESTRING/MULTILINESTRING, or POLYGON/MULTIPOLYGON geometry typesx_var and y_var variables are requiredsf object as a borders or administrative boundaries to be added to the map. An example New Zealand borders (nz) has been provided with the package.plotly::ggplotly.ggplot_sf(example_sf_point,
borders = nz,
point_size = 0.25,
title = "Site trends, 2008\u201317",
title_wrap = 40)pal <- c("#4575B4", "#D3D3D3", "#D73027")
ggplot_sf_col(example_sf_point, trend_category,
borders = nz,
point_size = 0.25,
pal = pal,
title = "Site trends, 2008\u201317",
title_wrap = 40)ggplot_sf_facet(example_sf_point, trend_category,
borders = nz,
point_size = 0.25,
title = "Site trends, 2008\u201317")pal <- c("#4575B4", "#D3D3D3", "#D73027")
ggplot_sf_col_facet(example_sf_point, trend_category, trend_category,
borders = nz,
point_size = 0.25,
pal = pal,
title = "Site trends, 1990\u201317")simplevis provides sf leaflet maps.
These work in the same way as the ggplot map functions, but with no borders arguments.
Spatial-temporal array (i.e. stars) maps may be supported in future.
simplevis provides two template shiny apps called template1 and template2. Users can access these functions by using the run_template functions for the applicable app, and then clicking on the download_code button to access a zip file of the code.
run_template("template1") # a graph and table
run_template("template2") # a leaflet map, as well as graph and tableFor a simple app, the basic method to create an app is:
run_template("template1") or run_template("template2") and download the code to use as a templateget_data.R, extract, process and save your data into the data subfolder, including a zip file for downloadmake_app_vis.R, draft your visualisations with dummy character inputsglobal.R, read your data in, and create any vectors requiredui.R, add a app titleui.R. add radioButtons and other widgetsserver.R, add code within reactive plot_data and plot components, change any dummy character inputs to shiny user inputs. Add a isMobile = input$isMobile specification to any simplevis graphs if you are looking to support mobile users as well as desktopserver.R, add code for map and table components, as applicablewww/About.Rmd, update as necessaryGTM-XXXXXXX with it in the www/js/tag-manager-js file.Iframing apps can provide a great experience for users.
Template apps are build to be compatible with one of two approaches to iframing: