[英]R ggplotly dublicated legend
我尝试生成一个情节,每个点代表一个事件。 Color,Size和faced_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相同的图形? 我很感激每一个提示。 谢谢
戴夫
当你使用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提到的这个链接将帮助你创建每个子图。 有一点需要注意的是,我在绘图中描绘了图例中不同大小的问题,而标记的大小会有所不同,因此不会有大小比例的图例。 也许规模将是更好的选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.