为悬停时的每一层分别设置 css 属性 (ggiraph)
set css property separately for each layer on hover (ggiraph)
使用 ggiraph
,我想为每个 ggplot
geom_
或使用悬停的图层设置不同的 css
属性。在下面的示例中,我如何将第二个 geom_rect_interactive
的笔划设置为悬停时的蓝色,但在悬停时保持第一层笔划为红色(保持 data_id
相同,以便两者都响应悬停在任一层上)?
library(ggplot2)
library(ggiraph)
p <-
ggplot(
data = data.frame(id = seq(3), x = 1:3, y = 1:3)
) +
# red stroke
geom_rect_interactive(
mapping = aes(
xmin = x, xmax = x - 0.1,
ymin = y, ymax = y - 0.1,
data_id = id
)
) +
# blue stroke
geom_rect_interactive(
mapping = aes(
xmin = x, xmax = x + 0.1,
ymin = y, ymax = y + 0.1,
data_id = id
)
)
x <- girafe(ggobj = p)
x <- girafe_options(
x,
opts_hover(
css = "stroke:#ff0000;"
)
)
x
我想我也许可以做一些事情,比如将一些自定义 css
class 分配给特定层(例如,.mystroke {stroke:#0000ff;}
),但不确定如何处理这个.
(我是作者之一)这目前是不可能的,我们没有考虑过这种情况(如果我们能实现的话我们会考虑)。
目前,每个形状类型只能指定一个 CSS。一个例子会更有意义,它是复制自:
https://davidgohel.github.io/ggiraph/articles/offcran/customizing.html#detailled-control-1
library(ggplot2)
library(ggiraph)
dataset <- mtcars
dataset$carname <- row.names(dataset)
gg_scatter <- ggplot(dataset, aes(x = disp, y = qsec, label = carname,
data_id = carname, color= wt) ) +
geom_point_interactive(size=3) +
geom_text_interactive(vjust = 2) +
theme_minimal()
girafe(ggobj = gg_scatter2,
options = list(
opts_hover(
css = girafe_css(
css = "fill:purple;stroke:black;",
text = "stroke:none;fill:red;"
)
)
) )
使用 ggiraph
,我想为每个 ggplot
geom_
或使用悬停的图层设置不同的 css
属性。在下面的示例中,我如何将第二个 geom_rect_interactive
的笔划设置为悬停时的蓝色,但在悬停时保持第一层笔划为红色(保持 data_id
相同,以便两者都响应悬停在任一层上)?
library(ggplot2)
library(ggiraph)
p <-
ggplot(
data = data.frame(id = seq(3), x = 1:3, y = 1:3)
) +
# red stroke
geom_rect_interactive(
mapping = aes(
xmin = x, xmax = x - 0.1,
ymin = y, ymax = y - 0.1,
data_id = id
)
) +
# blue stroke
geom_rect_interactive(
mapping = aes(
xmin = x, xmax = x + 0.1,
ymin = y, ymax = y + 0.1,
data_id = id
)
)
x <- girafe(ggobj = p)
x <- girafe_options(
x,
opts_hover(
css = "stroke:#ff0000;"
)
)
x
我想我也许可以做一些事情,比如将一些自定义 css
class 分配给特定层(例如,.mystroke {stroke:#0000ff;}
),但不确定如何处理这个.
(我是作者之一)这目前是不可能的,我们没有考虑过这种情况(如果我们能实现的话我们会考虑)。
目前,每个形状类型只能指定一个 CSS。一个例子会更有意义,它是复制自:
https://davidgohel.github.io/ggiraph/articles/offcran/customizing.html#detailled-control-1
library(ggplot2)
library(ggiraph)
dataset <- mtcars
dataset$carname <- row.names(dataset)
gg_scatter <- ggplot(dataset, aes(x = disp, y = qsec, label = carname,
data_id = carname, color= wt) ) +
geom_point_interactive(size=3) +
geom_text_interactive(vjust = 2) +
theme_minimal()
girafe(ggobj = gg_scatter2,
options = list(
opts_hover(
css = girafe_css(
css = "fill:purple;stroke:black;",
text = "stroke:none;fill:red;"
)
)
) )