如何解决不一致的绘制,而使用ggplot简单的箱线图?

问题描述 投票:1回答:1

我想利用新GGPLOT2(开发版)的功能,使我的剧情互动。我也有安装plotly-dev的版本。

但是,对我来说这似乎是如许它不工作。考虑这一点,

gg <- ggplot(data = mtcars, aes(x = factor(mtcars$cyl), y = mtcars$hp)) + 
  geom_boxplot(aes(fill = factor(mtcars$cyl), color = factor(mtcars$cyl), alpha = 1/2 )) 

gg 

ggplotly(gg)

如果你发现,你会看到离群值在ggploty不同的标记()。我怎样才能摆脱这一点,所以它看起来“相同”作为ggplot(第一图)?

然后,我怎么能在ggplotly添加/编辑传说。

r ggplot2 ggplotly
1个回答
1
投票

这是一个有点尴尬后,一年多来回答。但希望它有助于对任何人搜索同样的问题后,我最近碰到类似的问题来了(当我无法隐藏离群点geom_boxplot)。

参照RPython plotly箱线图,你可能有boxpoints这些c('all', False, 'suspectedoutliers','outliers')之一,显示异常的不同方式。当选择'suspectedoutliers',你可以调整标记的风格。这里,差异来自标记线外。

我还没有找到一种方法来轻松地做到这一点在ggplotly还,但它使用plotly_build一些努力是可行的。 (你会深入到结构它存储的数据)

第一,

    gg <- ggplot(data = mtcars, aes(x = factor(mtcars$cyl), y = mtcars$hp)) + 
        geom_boxplot(aes(fill = factor(mtcars$cyl), color = factor(mtcars$cyl), alpha = 1/2 ))
    ggly <- plotly_build(gg)

你可以看看ggly$x$data。您可能会看到的3个项目,分别对应于图3盒列表。

下一个,

    for (i in 1:length(ggly$x$data)) {
        # ggly$x$data[[i]]$boxpoints <- "outliers"
        ggly$x$data[[i]]$marker$line <- NULL
        ggly$x$data[[i]]$line$width <- 1
    }
    rm(i)
    ggly

因为它不具有$boxpoints参数,并有对标记和线的参数,我去掉了标记线外,然后改变框的线的宽度。这将解决这个异常的外观。如果你也想解决的传说,也许你可以检查$legendgroup,但是,我没有一个很好的解决方案呢。

顺便说一句,如果有人正在寻找一种方法来隐藏/禁用像in geom_boxplot波动,您可以通过它的不透明度设置为0使用'suspectedoutliers'和风格离群值(我为了以后绘制抖动的另一层这样做。)

    for (i in 1:length(ggly$x$data)) {
        ggly$x$data[[i]]$boxpoints <- "suspectedoutliers"
        ggly$x$data[[i]]$marker$opacity <- 0
    }
    rm(i)
    ggly

再次,希望它帮助。

© www.soinside.com 2019 - 2024. All rights reserved.