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
的简单扩展,但是如果有可比的软件包,我将对其他解决方案持开放态度。
答案 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小部件的输出格式包含它,或在浏览器中查看它。
由于上述内容只是截图,因此我将输出上传到我在plot.ly上的帐户中。您可以找到它here并对其进行操作。
我希望这会有所帮助!