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

时间:2017-11-10 16:44:37

标签: r ggplot2 ggplotly

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

的工作示例
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))

这是非工作对手:

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))

(注意:在这个具体的例子中,轴标题和轴标签之间没有重叠,但我想指出轴标题重新定位不能基于同一个例子的事实。)

1 个答案:

答案 0 :(得分:3)

这是解决问题的技巧:

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))