forked from davidgohel/ggiraph
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathelement_interactive.Rd
107 lines (98 loc) · 3.47 KB
/
element_interactive.Rd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/element_interactive.R
\name{element_interactive}
\alias{element_line_interactive}
\alias{element_rect_interactive}
\alias{element_text_interactive}
\title{Create interactive theme elements}
\usage{
element_line_interactive(...)
element_rect_interactive(...)
element_text_interactive(...)
}
\arguments{
\item{...}{arguments passed to base function,
plus any of the \link{interactive_parameters}.}
}
\description{
With these functions the user can add interactivity to various \link[ggplot2:theme]{theme}
elements.
They are based on \code{\link[=element_rect]{element_rect()}},
\code{\link[=element_line]{element_line()}} and \code{\link[=element_text]{element_text()}}
See the documentation for those functions for more details.
}
\section{Details for element_*_interactive functions}{
The interactive parameters can be supplied as arguments in the relevant function
and they should be scalar values.
For theme text elements (\code{\link[=element_text_interactive]{element_text_interactive()}}), the interactive parameters
can also be supplied while setting a label value, via the \code{\link[=labs]{labs()}} family
of functions or when setting a scale/guide title or key label.
Instead of setting a character value for the element, function
\code{\link[=label_interactive]{label_interactive()}} can be used to define interactive parameters
to go along with the label.
When the parameters are supplied that way, they override the default values
that are set at the theme via \code{\link[=element_text_interactive]{element_text_interactive()}} or via the \code{guide}'s
theme parameters.
}
\examples{
# add interactive theme elements -------
library(ggplot2)
library(ggiraph)
dataset <- structure(list(qsec = c(16.46, 17.02, 18.61, 19.44, 17.02, 20.22
), disp = c(160, 160, 108, 258, 360, 225), carname = c("Mazda RX4",
"Mazda RX4 Wag", "Datsun 710", "Hornet 4 Drive", "Hornet Sportabout",
"Valiant"), wt = c(2.62, 2.875, 2.32, 3.215, 3.44, 3.46)), row.names = c("Mazda RX4",
"Mazda RX4 Wag", "Datsun 710", "Hornet 4 Drive", "Hornet Sportabout",
"Valiant"), class = "data.frame")
# plots
gg_point = ggplot(data = dataset) +
geom_point_interactive(aes(
x = wt,
y = qsec,
color = disp,
tooltip = carname,
data_id = carname
)) +
theme_minimal() +
theme(
plot.title = element_text_interactive(
data_id = "plot.title",
tooltip = "plot title",
hover_css = "fill:red;stroke:none;font-size:12pt"
),
plot.subtitle = element_text_interactive(
data_id = "plot.subtitle",
tooltip = "plot subtitle",
hover_css = "fill:none;"
),
axis.title.x = element_text_interactive(
data_id = "axis.title.x",
tooltip = "Description for x axis",
hover_css = "fill:red;stroke:none;"
),
axis.title.y = element_text_interactive(
data_id = "axis.title.y",
tooltip = "Description for y axis",
hover_css = "fill:red;stroke:none;"
),
panel.grid.major = element_line_interactive(
data_id = "panel.grid",
tooltip = "Major grid lines",
hover_css = "fill:none;stroke:red;"
)
) +
labs(
title = "Interactive points example!",
subtitle = label_interactive(
"by ggiraph",
tooltip = "Click me!",
onclick = "window.open(\"https://davidgohel.github.io/ggiraph/\")",
hover_css = "fill:magenta;cursor:pointer;"
)
)
x <- girafe(ggobj = gg_point)
if( interactive() ) print(x)
}
\seealso{
\code{\link[=girafe]{girafe()}}
}