使用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))
我在 ggplot
图表上使用 ggplotly
时遇到问题。它基本上与 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))