2017-03-31 42 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的格式良好的工具提示。也许有另一种方法来实现这种效果?

相关问题