diff --git a/R/apex.R b/R/apex.R index 69d0adf..1266508 100644 --- a/R/apex.R +++ b/R/apex.R @@ -141,7 +141,7 @@ make_series <- function(mapdata, mapping, type = NULL, serie_name = NULL) { mapdata$x[is.na(mapdata$x)] <- "NA" x_order <- unique(mapdata$x) if (is_x_datetime(mapdata)) { - add_names <- FALSE + add_names <- c("x", "y") x_order <- sort(x_order) } else { add_names <- names(mapping) diff --git a/R/mixed-charts.R b/R/mixed-charts.R index 8282081..8ef6407 100644 --- a/R/mixed-charts.R +++ b/R/mixed-charts.R @@ -31,8 +31,8 @@ add_line <- function(ax, } else { apex_type <- ax$x$mixed_type } - if (!isTRUE(apex_type %in% c("line", "bar", "scatter"))) - stop("add_line: apex() must be a column or scatter chart.", call. = FALSE) + if (!isTRUE(apex_type %in% c("line", "bar", "scatter", "candlestick"))) + stop("add_line: apex() must be a column, scatter or candlestick chart.", call. = FALSE) ax$x$ax_opts$chart$type <- "line" if (is.null(data)) data <- ax$x$data @@ -56,6 +56,13 @@ add_line <- function(ax, ax$x$ax_opts$stroke$width <- c(ax$x$ax_opts$stroke$width, 4) } } + if (identical(apex_type, "candlestick")) { + if (is.null(ax$x$ax_opts$stroke$width)) { + ax$x$ax_opts$stroke$width <- c(1, 4) + } else { + ax$x$ax_opts$stroke$width <- c(ax$x$ax_opts$stroke$width, 4) + } + } if (identical(type, "line")) { ax$x$ax_opts$stroke$curve <- "straight" } else if (identical(type, "spline")) { diff --git a/R/parse-data.R b/R/parse-data.R index 00ebb82..73888e4 100644 --- a/R/parse-data.R +++ b/R/parse-data.R @@ -35,7 +35,8 @@ parse_df <- function(data, add_names = FALSE) { # format(x) js_date(x) } else if (inherits(x, "POSIXt")) { - as.numeric(x) * 1000 + # as.numeric(x) * 1000 + js_date(x) } else if (inherits(x, "factor")) { as.character(x) } else { @@ -112,6 +113,7 @@ parse_timeline_data <- function(.list) { parse_candlestick_data <- function(.list) { list(list( + type = "candlestick", data = lapply( X = seq_len(length(.list[[1]])), FUN = function(i) {