在ggplotly中进行分面时重复的图例

时间:2015-12-21 22:51:22

标签: r ggplot2 plotly

我正在使用ggplotly()制作一些数字,并注意到facet_wrapfacet_grid会导致图例中的每个项目按面数重复。有办法阻止这个吗?

例如:

library("ggplot2")
library("plotly")
diamonds = diamonds[diamonds$cut %in% c("Fair", "Good"),]
dia = ggplot(diamonds, aes(x = cut)) + 
  geom_bar(aes(stat = "identity", fill = cut)) + 
  facet_grid(.~color)

ggplotly(dia)

enter image description here

?plotly文档不是很精细,these都没有传说。

以下是我输入ggplotly时出现的内容,如果有任何见解的话:

function (p = ggplot2::last_plot(), filename, fileopt, world_readable = TRUE) 
{
    l <- gg2list(p)
    if (!missing(filename)) 
        l$filename <- filename
    if (!missing(fileopt)) 
        l$fileopt <- fileopt
    l$world_readable <- world_readable
    hash_plot(p$data, l)
}

2 个答案:

答案 0 :(得分:2)

更新

Plotly 3.6.0 - 2016年5月16日出现问题 enter image description here

由于geom_bar的ggplotly错误会导致条形数据失真,因此可能没有好办法。对于这种特殊情况,不需要方面。您可以使用plot_ly()来构建有效的图。

Plot_ly

ret

enter image description here

使用Plotly子图()

如果必须使用此绘图类型,则可以使用Plotly的子绘图构建类似facet的绘图。它不漂亮。

require(plotly)
require(dplyr)

d <- diamonds[diamonds$cut %in% c("Fair", "Good"),] %>%
  count(cut, color)

plot_ly(d, x = color, y = n, type = "bar", group = cut)

enter image description here

答案 1 :(得分:1)

在这种情况下你可以关闭指南/图例,因为你真的不需要它。

library("ggplot2")
library("plotly")
diamonds = diamonds[diamonds$cut %in% c("Fair", "Good"),]
dia = ggplot(diamonds, aes(x = cut)) + 
  geom_bar(aes(stat = "identity", fill = cut)) + 
  guides(fill=FALSE) +
  facet_grid(.~color)

ggplotly(dia)

enter image description here