放大ggiraph时调整几何尺寸

时间:2018-11-02 20:23:18

标签: r ggplot2 ggiraph

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的简单扩展,但是如果有可比的软件包,我将对其他解决方案持开放态度。

1 个答案:

答案 0 :(得分:0)

首先,您的代码不可复制,因为model不可用,因此我假设您已将mtcars的行名分配给向量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小部件的输出格式包含它,或在浏览器中查看它。

enter image description here

由于上述内容只是截图,因此我将输出上传到我在plot.ly上的帐户中。您可以找到它here并对其进行操作。

我希望这会有所帮助!