added add_point()
This commit is contained in:
parent
92b2217f56
commit
8d751a485e
|
@ -4,6 +4,7 @@ export("%>%")
|
||||||
export(JS)
|
export(JS)
|
||||||
export(add_event)
|
export(add_event)
|
||||||
export(add_hline)
|
export(add_hline)
|
||||||
|
export(add_point)
|
||||||
export(add_shade)
|
export(add_shade)
|
||||||
export(add_shade_weekend)
|
export(add_shade_weekend)
|
||||||
export(add_vline)
|
export(add_vline)
|
||||||
|
|
|
@ -6,6 +6,9 @@ add_annotation <- function(ax, type_annotation = c("xaxis", "yaxis", "points"),
|
||||||
if (!is.null(config$label) && is.character(config$label)) {
|
if (!is.null(config$label) && is.character(config$label)) {
|
||||||
config$label <- list(text = config$label)
|
config$label <- list(text = config$label)
|
||||||
}
|
}
|
||||||
|
if (!is.null(config$marker) && is.numeric(config$marker)) {
|
||||||
|
config$marker <- list(size = config$marker)
|
||||||
|
}
|
||||||
if (identical(type_annotation, "yaxis")) {
|
if (identical(type_annotation, "yaxis")) {
|
||||||
len <- length(config$y)
|
len <- length(config$y)
|
||||||
} else {
|
} else {
|
||||||
|
@ -135,6 +138,44 @@ label <- function(text = NULL,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#' Marker for annotations
|
||||||
|
#'
|
||||||
|
#' @param size Size of the marker.
|
||||||
|
#' @param fillColor Fill Color of the marker point.
|
||||||
|
#' @param strokeColor Stroke Color of the marker point.
|
||||||
|
#' @param strokeWidth Stroke Size of the marker point.
|
||||||
|
#' @param shape Shape of the marker: \code{"circle"} or \code{"square"}.
|
||||||
|
#' @param radius Radius of the marker (applies to square shape).
|
||||||
|
#' @param OffsetX Sets the left offset of the marker.
|
||||||
|
#' @param OffsetY Sets the top offset of the marker.
|
||||||
|
#' @param cssClass Additional CSS classes to append to the marker.
|
||||||
|
#'
|
||||||
|
#' @return A \code{list} that can be used in \code{\link{add_point}}.
|
||||||
|
#' @noRd
|
||||||
|
#'
|
||||||
|
marker <- function(size = NULL,
|
||||||
|
fillColor = NULL,
|
||||||
|
strokeColor = NULL,
|
||||||
|
strokeWidth = NULL,
|
||||||
|
shape = NULL,
|
||||||
|
radius = NULL,
|
||||||
|
OffsetX = NULL,
|
||||||
|
OffsetY = NULL,
|
||||||
|
cssClass = NULL) {
|
||||||
|
dropNulls(list(
|
||||||
|
size = size,
|
||||||
|
fillColor = fillColor,
|
||||||
|
strokeColor = strokeColor,
|
||||||
|
strokeWidth = strokeWidth,
|
||||||
|
shape = shape,
|
||||||
|
radius = radius,
|
||||||
|
OffsetX = OffsetX,
|
||||||
|
OffsetY = OffsetY,
|
||||||
|
cssClass = cssClass
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#' @title Add a shaded area to a chart
|
#' @title Add a shaded area to a chart
|
||||||
#'
|
#'
|
||||||
#' @description \code{add_shade()} allow to add a shaded area on specified range,
|
#' @description \code{add_shade()} allow to add a shaded area on specified range,
|
||||||
|
@ -300,3 +341,49 @@ add_vline <- function(ax, value, color = "#000", dash = 0, label = NULL, ...) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#' Add an annotation point
|
||||||
|
#'
|
||||||
|
#' @param ax An \code{apexcharts} \code{htmlwidget} object.
|
||||||
|
#' @param x Coordinate(s) on the x-axis.
|
||||||
|
#' @param y Coordinate(s) on the y-axis.
|
||||||
|
#' @param size Size of the marker.
|
||||||
|
#' @param color Stroke Color of the marker point.
|
||||||
|
#' @param fill Fill Color of the marker point.
|
||||||
|
#' @param width Stroke Size of the marker point.
|
||||||
|
#' @param shape Shape of the marker: \code{"circle"} or \code{"square"}.
|
||||||
|
#' @param radius Radius of the marker (applies to square shape).
|
||||||
|
#' @param label Add a label to the shade, use a \code{character}
|
||||||
|
#' or see \code{\link{label}} for more controls.
|
||||||
|
#' @param ... Additional arguments, see
|
||||||
|
#' \url{https://apexcharts.com/docs/options/annotations/} for possible options.
|
||||||
|
#'
|
||||||
|
#' @return An \code{apexcharts} \code{htmlwidget} object.
|
||||||
|
#' @export
|
||||||
|
#'
|
||||||
|
#' @example examples/add_point.R
|
||||||
|
add_point <- function(ax, x, y,
|
||||||
|
size = 5,
|
||||||
|
color = "#000",
|
||||||
|
fill = "#FFF",
|
||||||
|
width = 2,
|
||||||
|
shape = "circle",
|
||||||
|
radius = 2,
|
||||||
|
label = NULL, ...) {
|
||||||
|
add_annotation(
|
||||||
|
ax = ax,
|
||||||
|
type_annotation = "points",
|
||||||
|
position = "front",
|
||||||
|
as_date = FALSE,
|
||||||
|
x = x, y = y,
|
||||||
|
marker = marker(
|
||||||
|
size = size,
|
||||||
|
fillColor = fill,
|
||||||
|
strokeColor = color,
|
||||||
|
strokeWidth = width,
|
||||||
|
shape = shape,
|
||||||
|
radius = radius
|
||||||
|
),
|
||||||
|
label = label,
|
||||||
|
...
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
|
||||||
|
library(apexcharter)
|
||||||
|
|
||||||
|
# On scatter chart
|
||||||
|
apex(
|
||||||
|
data = iris,
|
||||||
|
aes(Sepal.Length, Sepal.Width),
|
||||||
|
"scatter"
|
||||||
|
) %>%
|
||||||
|
add_point(
|
||||||
|
x = mean(iris$Sepal.Length),
|
||||||
|
y = mean(iris$Sepal.Width)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Some options
|
||||||
|
apex(
|
||||||
|
data = iris,
|
||||||
|
aes(Sepal.Length, Sepal.Width),
|
||||||
|
"scatter"
|
||||||
|
) %>%
|
||||||
|
add_point(
|
||||||
|
x = mean(iris$Sepal.Length),
|
||||||
|
y = mean(iris$Sepal.Width),
|
||||||
|
fill = "firebrick",
|
||||||
|
color = "firebrick",
|
||||||
|
size = 8,
|
||||||
|
label = label(text = "Mean", offsetY = 0)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Several points
|
||||||
|
clusters <- kmeans(iris[, 1:2], 3)
|
||||||
|
apex(
|
||||||
|
data = iris,
|
||||||
|
aes(Sepal.Length, Sepal.Width),
|
||||||
|
"scatter"
|
||||||
|
) %>%
|
||||||
|
add_point(
|
||||||
|
x = clusters$centers[, 1],
|
||||||
|
y = clusters$centers[, 2]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
% Generated by roxygen2: do not edit by hand
|
||||||
|
% Please edit documentation in R/annotations.R
|
||||||
|
\name{add_point}
|
||||||
|
\alias{add_point}
|
||||||
|
\title{Add an annotation point}
|
||||||
|
\usage{
|
||||||
|
add_point(
|
||||||
|
ax,
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
size = 5,
|
||||||
|
color = "#000",
|
||||||
|
fill = "#FFF",
|
||||||
|
width = 2,
|
||||||
|
shape = "circle",
|
||||||
|
radius = 2,
|
||||||
|
label = NULL,
|
||||||
|
...
|
||||||
|
)
|
||||||
|
}
|
||||||
|
\arguments{
|
||||||
|
\item{ax}{An \code{apexcharts} \code{htmlwidget} object.}
|
||||||
|
|
||||||
|
\item{x}{Coordinate(s) on the x-axis.}
|
||||||
|
|
||||||
|
\item{y}{Coordinate(s) on the y-axis.}
|
||||||
|
|
||||||
|
\item{size}{Size of the marker.}
|
||||||
|
|
||||||
|
\item{color}{Stroke Color of the marker point.}
|
||||||
|
|
||||||
|
\item{fill}{Fill Color of the marker point.}
|
||||||
|
|
||||||
|
\item{width}{Stroke Size of the marker point.}
|
||||||
|
|
||||||
|
\item{shape}{Shape of the marker: \code{"circle"} or \code{"square"}.}
|
||||||
|
|
||||||
|
\item{radius}{Radius of the marker (applies to square shape).}
|
||||||
|
|
||||||
|
\item{label}{Add a label to the shade, use a \code{character}
|
||||||
|
or see \code{\link{label}} for more controls.}
|
||||||
|
|
||||||
|
\item{...}{Additional arguments, see
|
||||||
|
\url{https://apexcharts.com/docs/options/annotations/} for possible options.}
|
||||||
|
}
|
||||||
|
\value{
|
||||||
|
An \code{apexcharts} \code{htmlwidget} object.
|
||||||
|
}
|
||||||
|
\description{
|
||||||
|
Add an annotation point
|
||||||
|
}
|
||||||
|
\examples{
|
||||||
|
|
||||||
|
library(apexcharter)
|
||||||
|
|
||||||
|
# On scatter chart
|
||||||
|
apex(
|
||||||
|
data = iris,
|
||||||
|
aes(Sepal.Length, Sepal.Width),
|
||||||
|
"scatter"
|
||||||
|
) \%>\%
|
||||||
|
add_point(
|
||||||
|
x = mean(iris$Sepal.Length),
|
||||||
|
y = mean(iris$Sepal.Width)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Some options
|
||||||
|
apex(
|
||||||
|
data = iris,
|
||||||
|
aes(Sepal.Length, Sepal.Width),
|
||||||
|
"scatter"
|
||||||
|
) \%>\%
|
||||||
|
add_point(
|
||||||
|
x = mean(iris$Sepal.Length),
|
||||||
|
y = mean(iris$Sepal.Width),
|
||||||
|
fill = "firebrick",
|
||||||
|
color = "firebrick",
|
||||||
|
size = 8,
|
||||||
|
label = label(text = "Mean", offsetY = 0)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Several points
|
||||||
|
clusters <- kmeans(iris[, 1:2], 3)
|
||||||
|
apex(
|
||||||
|
data = iris,
|
||||||
|
aes(Sepal.Length, Sepal.Width),
|
||||||
|
"scatter"
|
||||||
|
) \%>\%
|
||||||
|
add_point(
|
||||||
|
x = clusters$centers[, 1],
|
||||||
|
y = clusters$centers[, 2]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue