Skip to content

ggplot2::stat_summary with ggplot2::geom_crossbar inducing error in ggplotly #2220

Closed

Description

@akunihiro

I am running into an issue after recently updating plotly (and possibly ggplot2). Using ggplot2::geom_crossbar in ggplot2::stat_summary and visualizing with ggplotly results in the following error:

Error in `[[<-.data.frame`(`*tmp*`, nm, value = numeric(0)) : 
  replacement has 0 rows, data has 3

Here is a reprex:

library(ggplotly)
library(plotly)
library(tidyverse)
library(ggbeeswarm)

data("iris")

iris_plot <- iris %>%
  ggplot(aes(x = Species, y = Sepal.Length)) +
  
  # plot quasirandom distribution
  geom_quasirandom(shape = 21,
                   # size = 2,
                   size = 4,
                   alpha = 1,
                   stroke = 0.1,
                   varwidth = TRUE) +
  
  # add median bar
  stat_summary(fun = function(x) log2(median(2^x)),
               geom = "crossbar",
               linetype = "dashed",
               color = "black") +
  
  # add mean bar
  stat_summary(fun = function(x) log2(mean(2^x)),
               geom = "crossbar",
               linetype = "solid",
               color = "black") +
  
  # log2 scale
  scale_y_continuous(trans = "log2")

# plotting directly works
iris_plot

# plot with ggplotly results in error
ggplotly(iris_plot) 

Changing the geom argument in ggplot2::stat_summary to "pointrange" allows the plot to be visualized with ggplotly

Activity

  1. added a commit that references this issue on Jan 3, 2023
    c104bfd
  2. cpsievert commented on Jan 3, 2023

    @cpsievert
    Collaborator

    Here's a more minimal reprex:

    library(plotly)
    
    p <- ggplot(iris, aes(x = Species, y = Sepal.Length)) +
        stat_summary(fun = median, geom = "crossbar")
    
    ggplotly(p) 
  3. added a commit that references this issue on Jan 4, 2023
    7fb95ed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions