library(highcharter) options(highcharter.theme = hc_theme_smpl(), highcharter.debug = TRUE)
We chart data. Data can come in different ways: numeric or character vectors, as time series objects, etc. but the most common object with data is a data frame. So, why can chart this type of object in highcharter?
Highcharter have two main functions to create a chart from data and another
to add data to an existing
hchart: A generic function which take an object (like vector, time series, data frames, likert object, etc) and return a
hc_add_series: A generic function which add data to a existing
highchartobject depending the type (class) of the data.
There are a last function will be useful to chart data from data frame. The
hcaes which will define the aesthetic mappings. This 3 functions
are inspired in ggplot2 package. So:
hchartworks like ggplot2's
hc_add_seriesworks like ggplot2's
hcaesworks like ggplot2's
The main differences with ggplot2 are here we need the data and the aesthetics explicit in every highchart functions. Lets see example to be more clear.
data("mpg", package = "ggplot2") head(mpg)
hchart(mpg, "point", hcaes(x = displ, y = cty))
The previous code is same as:
highchart() %>% hc_add_series(mpg, "point", hcaes(x = displ, y = cty))
Other example can be:
data(diamonds, package = "ggplot2") set.seed(123) data <- sample_n(diamonds, 300) modlss <- loess(price ~ carat, data = data) fit <- arrange(augment(modlss), carat) head(fit) highchart() %>% hc_add_series(data, type = "scatter", hcaes(x = carat, y = price, size = depth, group = cut)) %>% hc_add_series(fit, type = "spline", hcaes(x = carat, y = .fitted), name = "Fit", id = "fit") %>% hc_add_series(fit, type = "arearange", hcaes(x = carat, low = .fitted - 2*.se.fit, high = .fitted + 2*.se.fit), linkedTo = "fit")
With highcharter you can have other type of charts.
dfdiam <- diamonds %>% group_by(cut, clarity) %>% summarize(price = median(price)) hchart(dfdiam, "heatmap", hcaes(x = cut, y = clarity, value = price))
data(economics_long, package = "ggplot2") economics_long2 <- filter(economics_long, variable %in% c("pop", "uempmed", "unemploy")) hchart(economics_long2, "line", hcaes(x = date, y = value01, group = variable))
You can even chart a treemaps:
data(mpg, package = "ggplot2") mpgman <- mpg %>% group_by(manufacturer) %>% summarise(n = n(), unique = length(unique(model))) %>% arrange(-n, -unique) head(mpgman) hchart(mpgman, "treemap", hcaes(x = manufacturer, value = n, color = unique))
You can add other parameters to add options to the data series:
mpgman2 <- count(mpg, manufacturer, year) hchart(mpgman2, "bar", hcaes(x = manufacturer, y = n, group = year), color = c("#FCA50A", "#FCFFA4"), name = c("year 1999", "Year 2008"))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.