Open hoholee opened 7 years ago
I am also running into this problem with ggplotly :/ Guess I need to convert everything to directly use plot_ly().
Update: using plot_ly() directly doesn't work for me either, because I need to display ellipses and that can only be done with ggplot + ggplotly :( So frustrating.
Hi all, as a work-around approah to display a very long multi-column legend, I tried to use the
layout(legend = list(orientation = "h"))
.Here is the data_frame I was working with:
When I first built a ggplot object and then used
ggplotly
to convert it, I got this:p <- ggplot(df, aes_string("cluster", "mCH", fill="cluster"))
p <- p + geom_boxplot() + scale_fill_manual(values = colors2, name="Cluster") + theme_bw() + ggtitle("someGene")
p.ggplotly <- p %>% ggplotly(tooltip = c("cluster", "mCH", "density")) %>% layout(legend = list(orientation = "h"))
p.ggplotly
The legend had only one row and it just got out of the margin... But when I did a similar thing using
plot_ly
the legend was fine:p.plotly <- plot_ly(df,x=~cluster, y=~mCH,type="box", color=~cluster, colors=colors2) %>% layout(legend=list(orientation = "h"))
p.plotly
And I thought this is somehow control by the
layout
, so I tried copying the layout fromp.plotly
top.ggplotly
:p.ggplotly.bak <- p.ggplotly
p.ggplotly$x$layout <- p.plotly$x$layout
But the legend was still truncated...p.ggplotly
However if I did it the other way around, I got a something like this:
p.plotly$x$layout <- p.ggplotly.bak$x$layout
p.plotly
The legend was displayed correctly with multiple rows(even though the position was not right, but I know how to adjust for that).
I'm not sure if this is because the
ggplotly
andplot_ly
is inherently different, or there're other options that can controll this behavior (or this is just a bug?). Any idea? I somehow prefer to use ggplotly...FYI, ggplot2 version is 2.2.1 and plotly version is 4.5.6.9000. Thanks!