ggplotly忽略ggplot2 theme()参数的问题求解
解决ggplotly忽略ggplot2 theme参数的问题
针对你遇到的theme()里的图例位置和标题边距在ggplotly中失效的问题,可以直接用plotly的layout()函数来配置对应样式,以下是具体实现:
1. 调整标题底部边距
在ggplotly转换后调用layout(),通过title参数设置底部边距,对应原plot.title的margin(0,0,20,0):
ggplotly(p) %>% layout(title = list(margin = list(b = 20)))
2. 设置图例到x轴下方
同样在layout()里配置legend参数,设置水平方向并调整垂直位置(将y值设为负数,让图例移到x轴下方):
ggplotly(p) %>% layout(legend = list(orientation = "h", y = -0.2, x = 0.5))
完整代码示例
把两个配置合并后的完整代码:
library(ggplot2) library(plotly) p <- ggplot(data = mtcars, aes(x = hp, y = disp))+ geom_point(aes(color = as.factor(gear)))+ theme( plot.title = element_text(margin = margin(0, 0, 20, 0)), legend.position = "bottom" )+ ggtitle("Title") ggplotly(p) %>% layout( title = list(margin = list(b = 20)), legend = list(orientation = "h", y = -0.2, x = 0.5) )
说明:ggplotly是将ggplot对象转换为plotly格式,底层依赖plotly.js渲染,因此无法完全兼容ggplot2的所有theme()参数,需要用plotly自身的布局配置来实现相同效果。
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

