R格普洛特配音的传说



我尝试生成一个图,每个点代表一个事件。颜色、大小和faced_grid用于以视觉方式提供其他信息。该图在 ggplot2 中工作,但知道确切的数字通常很重要,因此需要一个交互式版本,可以将鼠标悬停在点上并获取信息。我试图将情节转换为交互式版本,其中包含来自情节包的 ggplotly 函数。那么问题来了,图例不仅显示所用属性的不同状态,还包含所有存在的组合。此外,它没有显示来自geom_rect的信息。

我发现了相关/类似的问题,但他们使用了函数plot_ly而不是 ggploty 或没有提供答案。

下面,用mtcars数据集说明了同样的问题:

library(plotly)
g = ggplot(mtcars,aes(x=mpg,y=disp,color = as.factor(cyl),size =as.factor(gear))) +
geom_point() +
geom_text(label = c(rep("A",nrow(mtcars)-5),rep("B",5)),color = "black",size=4) +
geom_rect(data=data.frame(name="zone",Start=20,End = 30,ymin = -Inf,ymax = Inf),aes(xmin=Start, xmax=End, ymin=ymin, ymax=ymax,fill=name),inherit.aes = FALSE,alpha=0.3)+
facet_grid(vs~am)
g

这是结果以及它应该是什么样子: ggplot 图

现在使用 ggplotly

ggplotly(g)

这是结果:ggploty Graph

(1) 图例现在是用于颜色和大小的不同属性的组合

(2) geom_rect在图例中,但未显示在图表中

有谁知道如何像在 ggplot2 中一样在 ggplotly 中获得相同的图形?我很感激每一个提示。谢谢

戴夫

当您使用 ggplotly 时,我不知道如何修复图例的组合。但是,我可以解决第二个问题,如果您不使用 Inf 和 -Inf,geom_rect将起作用:

ggplotly(ggplot(mtcars,aes(x=mpg,y=disp, = as.factor(cyl),size =as.factor(gear))) +
geom_rect(aes( xmin=20, 
xmax=30, 
ymin=0, 
ymax=max(mtcars$disp),
fill="Name"),
inherit.aes = FALSE, alpha=0.3) +
geom_point() +
geom_text(label = c(rep("A",nrow(mtcars)-5),rep("B",5)), = "black",size=4) +
facet_grid(vs~am)) 

然而,传说是糟糕的。 我建议使用子情节在 Plotly 中创建相同的东西,我认为 Ben 提到的这个链接将帮助您创建每个子情节。值得一提的是,我在图例中很难说明不同的尺寸,虽然标记的大小会有所不同,但尺寸比例不会有图例。也许秤会是更好的选择。

相关内容

  • 没有找到相关文章

最新更新