plotly :: заголовки легенд ggplotly, не центрированные для граненого ggplot - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь превратить график ggplot в интерактивный график для презентации R Markdown HTML.

Если «a» - это мой ggplot, важный фрагмент кода выглядит следующим образом:

x <- list(title = "Title 1")

y <- list(title = "Title 2")

plotly::ggplotly(a + ylab(" ") + xlab(" ")) %>% plotly::layout(xaxis = x, yaxis = y)

Я использовал plotly :: layout (), так как заголовки осей, которые я предоставлял на графике ggplot, исчезали / перекрывались при применении ggplotly.

Как вы можете видеть, это дает мне большую часть пути , но кажется, что метки осей центрированы на верхнем левом фасете, а не на графике в целом. Сюжет был очень просто огранен с помощью facet_wrap (~ var).

Есть ли способ заставить заголовки осей двигаться в центр? (заголовок оси y между двумя левыми гранями, заголовок оси x под средним фасетом)

Вот воспроизводимый пример:

# This is an example ggplot
a <- ggplot(mtcars) + aes(hp, drat) + geom_point() + facet_wrap(~carb) + ylab(label = expression(X ~ (g ~ kg ^ {-1})))

# Apply ggplotly
plotly::ggplotly(a)
# You will see that the y label dissapears and overlaps the axis labels (first pic).

# Use the solution I found
x <- list(title = "Xlab")

y <- list(title = "Ylab"))

plotly::ggplotly(a + ylab(" ") + xlab(" ")) %>% plotly::layout(xaxis = x, yaxis = y)

# You'll see the result that I'm talking about (second pic).

enter image description here enter image description here

...