2016-09-29 45 views
2

我在使用ggplot一段時間,直到我遇到了Plotly庫,並開始將它用於我的情節。我仍然使用ggplot函數來創建繪圖,最後使用ggplotly函數來轉換它。如何使用Plotly擺脫默認工具提示?

我在圖中使用geom_tile和geom_text圖層來創建熱圖。我將geom_tile中的「text」屬性設置爲我想在工具提示中顯示的文本,並在ggplotly函數中傳遞tooltip =「text」。我想在矩形內顯示的文本是使用「標籤」屬性在geom_text圖層中設置的文本。

當繪製圖呈現時,我可以分別看到兩個工具提示,一個是我在geom_tile文本屬性中設置的文本,另一個是在geom_text圖層的標籤屬性中重複文本。

我該如何擺脫最後一個工具提示?

在此先感謝!

這裏是我的代碼:

gg<-ggplot(dataframe, aes(x=varX,y=varY))+ 
    geom_tile(aes(fill=cm,text=paste("#",casos)))+ 
    geom_text(aes(label=cm,size=casos),family = "arial", color="#111111")+ 
    scale_fill_gradient2(low="#DD3333",mid="#EEEE99",high="#00AA00")+ 
    labs(x="varX",y="varY",fill="CM")+ scale_size(range = c(2.5, 5),guide='none') + 
    theme(text=element_text(family = "arial", color="#666666", size=11) ,title=element_text(family = "arial", color="#666666", face="bold", size=12), axis.text=element_text(family = "arial", color="#666666", size=9),axis.text.x=element_text(angle=330)) 
ggplotly(gg, tooltip="text") 

回答

1

ggplotly()會自動創建懸停文字 - 這是它的「神奇」的一部分。要覆蓋,您必須使用plotly_build()

library(plotly) 
library(ggplot2) 

gg <- ggplot(mtcars, aes(x = cyl, y = gear)) + 
    geom_tile(aes(fill = mpg)) 

pb <- plotly_build(gg) 

# check structure of pb with str(pb) and see that the text element is a matrix 
mtext <- as.character(seq(1,9,1))) 

pb$data[[1]]$text <- matrix(mtext, 3, 3) 

pb