使用plotly更改ggplot中的轴标题位置

Change axis title position in ggplot using plotly

我在 ggplot 图表上使用 ggplotly 时遇到问题。它基本上与 完全相同的问题。但是,如果情节没有分面,则提供的解决方案将不起作用,因为在这种情况下不存在应更改的 object gp[['x']][['layout']][['annotations']] 。 (不幸的是,我没有足够的声誉来发表评论,因此我必须将这个问题作为一个新问题提出。) 结果,我找不到如何在 non-faceted 图中调整 y 轴标题位置。这是来自

的工作示例
library(gapminder)
library(plotly)
p <- ggplot(gapminder, aes(x = gdpPercap, y = lifeExp)) + 
  geom_point() + 
  scale_x_log10()
p <- p + aes(color = continent) + facet_wrap(~year)
gp <- ggplotly(p)
gp[['x']][['layout']][['annotations']][[2]][['x']] <- -0.1
gp %>% layout(margin = list(l = 75))

这是 non-working 对应的:

p <- ggplot(gapminder, aes(x = gdpPercap, y = lifeExp)) + 
  geom_point() + 
  scale_x_log10()
gp <- ggplotly(p)
gp[['x']][['layout']][['annotations']][[2]][['x']] <- -0.1
gp %>% layout(margin = list(l = 75))

(注意:在这个具体示例中,轴标题和轴标签之间没有重叠,但是我想指出轴标题 re-positioning 在同一示例中不起作用的事实。)

这里有一个技巧可以解决您的问题:

library(gapminder)
library(plotly)

gapminder$grp <- ""
p <- ggplot(gapminder, aes(x = gdpPercap, y = lifeExp)) + 
  geom_point() + 
  scale_x_log10() + 
  facet_wrap(~grp)
gp <- ggplotly(p) 
gp[['x']][['layout']][['annotations']][[2]][['x']] <- -0.1
gp %>% layout(margin = list(l = 75))