Closed
Description
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
Metadata
Metadata
Assignees
Labels
No labels