首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分别为悬停时的每一层设置css属性(ggiraph)

分别为悬停时的每一层设置css属性(ggiraph)
EN

Stack Overflow用户
提问于 2021-04-24 06:58:49
回答 1查看 42关注 0票数 0

使用ggiraph,我想使用hover为每个ggplot geom_或层设置不同的css属性。在下面的示例中,如何在悬停时将第二个geom_rect_interactive的笔划设置为蓝色,而在悬停时保持第一个层笔划为红色(保持data_id相同,以便两者都响应悬停在任一层上)?

代码语言:javascript
复制
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类分配给特定的层(例如,.mystroke {stroke:#0000ff;}),但不确定如何实现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-24 23:16:11

(我是作者之一)这目前是不可能的,我们还没有考虑这种情况(如果我们能实现它,我们会考虑)。

目前,只能为每个形状类型指定一个CSS。一个示例将更有意义,它是从以下内容复制而来的:

https://davidgohel.github.io/ggiraph/articles/offcran/customizing.html#detailled-control-1

代码语言:javascript
复制
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;"
    )
  )
  ) )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67237723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档