R ggplotly重复的传说
Posted
技术标签:
【中文标题】R ggplotly重复的传说【英文标题】:R ggplotly dublicated legend 【发布时间】:2019-10-30 08:13:51 【问题描述】:我尝试生成一个图,其中每个点都代表一个事件。 Color、Size 和 faces_grid 用于以视觉方式提供附加信息。该图在 ggplot2 中工作,但知道确切的数字通常很重要,因此需要一个交互式版本,以便将鼠标悬停在该点上并获取信息。我尝试使用 plotly-package 中的函数 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 Graph
现在使用 ggplotly
ggplotly(g)
这是结果:ggploty Graph
(1) 图例现在是用于颜色和大小的不同属性的组合
(2) geom_rect 在图例中但没有显示在图表中
有谁知道如何在 ggplotly 中像在 ggplot2 中一样获得相同的图形?我很感激每一个提示。谢谢
戴夫
【问题讨论】:
也许这会有所帮助:***.com/questions/47539539/… @tryhard 如果您可以使用dput()
复制一小部分数据,那就更好了,这样更容易为您提供帮助...在控制台中输入?dput()
获取有关如何使用它的帮助。
【参考方案1】:
当你使用 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))
然而,传说很糟糕。 我建议使用 subplot 在 Plotly 中创建相同的内容,我认为 Ben 提到的这个链接将帮助您创建每个子图。有一件事要提的是,我很难在情节中说明图例中的不同大小,而标记的大小会有所不同,但不会有大小比例的图例。也许规模将是一个更好的选择。
【讨论】:
以上是关于R ggplotly重复的传说的主要内容,如果未能解决你的问题,请参考以下文章