Showing content from https://cran.r-project.org/web/packages/rms/../rprev/../ggplot2/../SveltePlots/readme/README.html below:
README
Introduction to SveltePlots
SveltePlots is an innovative charting library designed to enhance Shiny
applications by utilizing the power of Svelte and Javascript. This library is a wrapper for a custom Svelte web component that leverages SVG to create interactive and dynamic charts. SveltePlots
includes a limited amount of charts to date which are line and scatter plots, bar charts, density charts, and histograms.
Key Features
- State Management: Benefit from Svelteâs exceptional state management to handle dynamic updates seamlessly.
- Ease of Use: Eliminate the need for
proxy
functions, renderUI
, insertUI
, and removeUI
in Shiny
, simplifying your code and enhancing maintainability.
- Interactive Charts: Create highly interactive and responsive charts with minimal effort.
- SVG-based: Utilize SVG for crisp and scalable vector graphics, ideal for a wide range of data visualizations.
Ease of Use Traditional Approach with Proxy Functions
When using JavaScript-based charting libraries in Shiny
:
- Proxy Functions: Proxy functions are created to handle updates to the chart. These functions allow developers to modify certain parts of the chart specification without re-rendering the entire chart. For example, if only the data points change, the proxy function will update just the data-related part of the chart.
- Partial Updates: By sending only the changes (such as new data points or updated axis labels) to the client-side JavaScript, these functions help maintain performance and responsiveness. This avoids the overhead of re-sending and re-rendering the entire chart.
SveltePlots Approach
SveltePlots takes a different approach due to the advantages provided by Svelteâs reactivity system:
- Complete Specification Updates: Instead of sending partial updates, the entire chart specification is sent to Svelte. This might seem inefficient at first glance, but Svelteâs optimized update mechanism ensures that only the parts of the DOM that need to change are updated.
- Svelteâs Reactivity: Svelte automatically tracks the dependencies and efficiently updates only the parts of the chart that have changed. This makes it unnecessary to manually create proxy functions and manage partial updates.
Benefits of SveltePlots Simplified Code
By leveraging Svelteâs reactivity:
- No Need for Proxy Functions: Developers do not need to create and manage proxy functions to handle partial updates. This reduces the complexity of the code base.
- Automatic Updates: Svelte handles the state management and ensures that only the necessary parts of the chart are re-rendered, even when the entire specification is sent.
Enhanced Maintainability
- Reduced Boilerplate: Without the need for proxy functions, the code becomes cleaner and easier to maintain.
- Consistency: Sending the entire specification ensures that the chartâs state is always consistent with the applicationâs state, reducing the likelihood of bugs caused by partial updates.
Limitations
- Not Suitable for Big Data: Due to the inherent limitations of SVG,
SveltePlots
is not recommended for big data visualizations where performance can be impacted by rendering a large number of elements.
Installation
install.packages("SveltePlots")
Examples
library(tidyverse)
library(SveltePlots)
data("penguins")
sp(
data = penguins %>%
dplyr::distinct(flipper_length_mm, bill_length_mm, species),
mapping = spaes(x = flipper_length_mm, y = bill_length_mm, group = species),
type = "points"
) %>%
sp_title("Penguins", font_size = 26)
ð View the penguins plot
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4