2017-03-15 31 views
0

在下面的示例中,標題的第二行與圖略有重疊。有沒有辦法通過增加標題和繪圖之間的間距來解決這個問題?修正plotly ggplotly()當標題分成兩行時標題重疊圖

library(ggplot2) 
library(plotly) 
library(magrittr) 

p1 <- ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) + 
    geom_point() + 
    ggtitle("A REALLY, REALLY, REALLY LONG TITLE THAT I WANT TO\nSPLIT INTO TWO LINES") 
p1 

ggplotly() %>% config(collaborate=FALSE, cloud=FALSE, displaylogo=FALSE, modeBarButtonsToRemove=c("select2d", "sendDataToCloud", "pan2d", "resetScale2d", "hoverClosestCartesian", "hoverCompareCartesian", "lasso2d", "zoomIn2d", "zoomOut2d")) 

overlapping plotly title

回答

-2

正如你所知道的,ggplot不會重新計算總的絕對高度。因此,在標題和繪圖之間添加一些緩衝區的最簡單方法是在一個長標題的末尾添加一個附加換行符\n)。

ggtitle("A REALLY, REALLY, REALLY LONG TITLE THAT I WANT TO\nSPLIT INTO TWO LINES\n")

1

Plotly忽略尾隨新行字符,並且還需要HTML打破<br />代替\n新線(參見實施例在端部)。

添加<br />手動打破您的標題,並將頂部margin添加到您的佈局(layout(gp, margin=list(t = 75)))。

that works

library(ggplot2) 
library(plotly) 
library(magrittr) 

p1 <- ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) + 
    geom_point() + 
    ggtitle("A REALLY, REALLY, REALLY LONG TITLE THAT I WANT TO <br />\nSPLIT INTO TWO LINES<br />\n") 
p1 

gp <- ggplotly() %>% config(collaborate=FALSE, cloud=FALSE, displaylogo=FALSE, modeBarButtonsToRemove=c("select2d", "sendDataToCloud", "pan2d", "resetScale2d", "hoverClosestCartesian", "hoverCompareCartesian", "lasso2d", "zoomIn2d", "zoomOut2d")) 
gp <- layout(gp, margin=list(t = 75)) 
gp 

ggplot ggplot


plotly

plotly