1

ggiraph包扩展ggplot2以增加交互性。一个功能是能够放大绘图,例如使用以下代码:

library(ggplot2)
library(ggiraph)

data(mtcars)

mtcars$model <- rownames(mtcars)

gg <- ggplot(mtcars, aes(x = mpg, y = disp)) +
  geom_point_interactive(aes(color = as.factor(cyl),
                             tooltip = model))

girafe(ggobj = gg) %>%
    girafe_options(opts_zoom(max = 5),
                   opts_tooltip(use_fill = TRUE))

预览图表时,可以通过单击放大镜和滚动来放大。当用户缩放时,点会放大,但工具提示的大小保持不变。

放大时是否可以调整几何尺寸(例如点半径或线条粗细)?

可能有很多原因这会很有用,但我特别在考虑过度绘图 - 我有一个密集的数据集,但放大并没有帮助,因为这些点仍然相互覆盖。

我正在使用ggiraph它是因为它是一个简单的扩展,ggplot2但如果有类似的包,我会对其他解决方案持开放态度。

4

1 回答 1

0

首先,您的代码不可重现,因为model它不可用,所以我假设您已将行名称分配mtcars给 vector model

我不认为你可以做到这一点,ggiraph但它很简单plotly:你可以生成一个ggplot对象并简单地将其转换为plotly使用plotly::ggplotly().

对于mtcars您的问题中的示例,以下方法可以解决问题:

library(plotly)

data(mtcars)

# generate ggplot object
gg <- ggplot(mtcars) + 
  geom_point(aes(x = mpg, y = disp, col  = as.factor(cyl), text = rownames(mtcars))) 

# convert to plotly object
ggplotly(gg, tooltip = "text")

结果看起来像一个ggplot2但是是交互式的,并且不受缩放问题的影响。您可以在查看器中使用它,将其包含在支持 HTML 小部件的输出格式中或在浏览器中查看。

在此处输入图像描述

由于以上只是截图,我将输出上传到我在 plot.ly 上的帐户。你可以在这里找到它并玩弄它。

我希望这有帮助!

于 2018-11-04T12:28:37.273 回答