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重复的传说的主要内容,如果未能解决你的问题,请参考以下文章

ggplot:geom_text不应出现在图例中[重复]

R - 在ggplot 2上将两个变量绘制为线条[重复]

使用ggplot2更改R中的x轴刻度标签[重复]

R - ggplot2 Legend没有出现在折线图上[重复]

使用 R ggplot 绘制宽格式数据 [重复]

R ggplot从图例中删除某些项目[重复]