2017-03-31 43 views
2

根據圖表/瀏覽器窗口的大小,我無法顯示工具提示。這最初看起來像是一個有關方面圖的問題,但在常規/單個圖表上這種行爲也很明顯。我已經做了很多搜索,到目前爲止還沒有發現任何東西。截至目前,還有一個類似的帖子在積極的論壇上沒有答案。不顯示低高度圖表高點的工具提示

這裏是一個圖表(HT)的MRE ...

require(ggplot2) 
require(plotly) 

randomName <- function(n) { 
    random.string <- rep(NA, n) 
    randomizeString <- function(x) { 
     a <-sample(letters, 1, replace = TRUE) 
     return(a) 
    } 
    return(paste(c(sapply(random.string, randomizeString, simplify = TRUE)), collapse = "")) 
} 

xvar = replicate(10, randomName(15)) 

df1 <- data.frame(x = xvar, y = xvar, z = runif(10)) 

df1$tooltip <- sprintf("x: %s<br>y: %s<br>z: %s<br>2x: %s<br>2y: %s<br>2z: %s<br>3x: %s<br>3y: %s<br>3z: %s" 
             ,df1$x, df1$y, df1$z, df1$x, df1$y, df1$z, df1$x, df1$y, df1$z) 

g = ggplot(df1, aes(x,y,fill=z, text = tooltip)) + 
     geom_tile() 

ggplotly(g, tooltip = "tooltip") 

如果調整瀏覽器窗口,以一個足夠小的高度,您將鼠標懸停在時注意到,工具提示將不顯示靠近圖表頂部的瓷磚。問題似乎是工具提示太高而無法顯示,因此懸停位置會將工具提示框的頂部放在圖表頂部之外。即使有問題,這種情況也是有道理的。但是,這個MRE的例子有點人爲和​​不現實。

此行爲在具有大量需要工具提示的構面的構面圖上成爲真正的問題。這是一個方面圖的MRE。即使使用最大化的瀏覽器窗口,相同的工具提示問題也是顯而易見的。

require(ggplot2) 
require(plotly) 

randomName <- function(n) { 
    random.string <- rep(NA, n) 
    randomizeString <- function(x) { 
     a <-sample(letters, 1, replace = TRUE) 
     return(a) 
    } 
    return(paste(c(sapply(random.string, randomizeString, simplify = TRUE)), collapse = "")) 
} 

xvar = replicate(10, randomName(15)) 
facet_var = replicate(12, randomName(2)) 

df1 <- data.frame(x = xvar, y = xvar, z = runif(10)) 
df1 <- merge(x = facet_var, y = df1, by = NULL) 

#df1$tooltip <- sprintf("x: %s<br>y: %s<br>z: %s<br>x+x: %s<br>y+y: %s<br>z+z: %s" 
df1$tooltip <- sprintf("facet: %s<br>x: %s<br>y: %s<br>z: %s<br>2x: %s<br>2y: %s<br>2z: %s<br>3x: %s<br>3y: %s<br>3z: %s" 
             ,df1$x.x, df1$x.y, df1$y, df1$z, df1$x.y, df1$y, df1$z, df1$x.y, df1$y, df1$z) 

g = ggplot(df1, aes(x.y,y,fill=z, text = tooltip)) + 
     geom_tile() + 
     facet_wrap(~x.x, ncol=2) 

ggplotly(g, tooltip = "tooltip") 

此問題針對默認和定製工具提示均存在 - 已在Chrome(v56)和Edge(v38)中進行了測試。

關於這個問題,我在SO上有一個earlier question posted,但我的分析是不合格的,我的例子不是MRE,因此我已經關閉/回答了這個問題。

我可以減少工具提示中的行數以避免此問題,但我寧願不必這樣做。這是一個已知的功能還是有這種行爲的解決方法?

+0

在第二個示例中:工具提示僅適用於第一個情節還是僅僅是我的特定環境? –

+0

@MaximilianPeters工具提示只會顯示圖表的幾何圖形(可用房地產)允許放置工具提示的那些點。工具提示不會「漂浮」在圖表的邊緣。在您環境中運行的第二個(方面)示例中,您可以看到,與第一行相比,第二行圖上的小平面圖非常淺,而且沒有足夠的空間來顯示工具提示。 – liam

回答

0

一種可能性/解決辦法是設置hovermode'y',即改變你的榜樣的最後一行:在RStudio

gp <- ggplotly(g, tooltip = "tooltip") 
gp[['x']][['layout']][['hovermode']]='y' 

減少窗口大小的第一個例子 enter image description here

部分第二個例子的全屏。 enter image description here

+0

同樣的問題仍然使用hovermode。事實上,它更突出了這些例子中更明顯的行爲。 ![hovermode低y點](https://github.com/liamcaffrey/svg_tooltip/blob/master/Hovermode_low_point.png)和![https://github.com/liamcaffrey/svg_tooltip/blob/master/Hovermode_high_point.png]。 – liam

+0

至少它顯示了一些東西:/看起來應該是Plotly製造商應該要求的東西。 –

0

我可以看到的解決此問題的唯一方法是確保tootip不會超過1或2行深度,我認爲工具提示的意圖首先在於!這就是我要去的。

我希望詳細說明「工具提示」,以便有一個包含td/table的格式良好的工具提示。也許有另一種方法來實現這種效果?

相關問題