2017-03-31 11 views
2

チャート/ブラウザウィンドウのサイズによってはツールチップが表示されないという問題があります。これはもともとファセットチャートの問題のように私には見えましたが、その動作は通常の/単一のチャートでも明らかです。私はこれを探していましたが、これまでに何も見つけられませんでした。プロットフォーラムにも同様の投稿がありますが、回答はまだありません。ここで高さの低いチャートの高ポイントのツールチップが表示されない

は、あなたが十分に小さい高さにブラウザのウィンドウのサイズを変更する場合は、上にマウスを移動するときにツールチップが表示されないことに気付くでしょう

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") 

...シングルチャート(HT)のためのMREですグラフの上部近くにタイルがあります。この問題は、ツールヒントの高さが高すぎて、ホバーの位置によってツールヒントボックスの上部がチャートの上部に配置されないことが原因と考えられます。この種の問題は問題があっても意味をなさない。しかし、このMREの例は少し工夫されており、非現実的です。

この動作は、ツールチップを必要とする多数のファセットを持つファセットチャート上の実際の問題になります。ファセットチャート用のMREがあります。ブラウザウィンドウを最大化しても、同じツールヒントの問題は明らかです。 Chromeでテストした(V56)とエッジ(V38) -

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") 

この問題は、デフォルトとオーダーメイドのツールチップの両方に存在します。

この問題に関してはearlier question postedがありましたが、私の分析はマークから外れていて、私の例はMREではありませんでした。

私は問題を解決するためにツールチップの行数を減らすことができましたが、それをする必要はありません。これは既知の機能ですか、またはこの動作の回避策がありますか?あなたの最初の例 enter image description here

パートのためRStudioで

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

削減ウィンドウのサイズ:

+0

2番目の例では、ツールチップは最初のプロットに対してのみ機能するのですか、それとも私の特定の環境だけですか? –

+0

@MaximilianPetersチャートのジオメトリ(利用可能な不動産)がツールチップをそこに配置できるポイントについてのみ、ツールチップに表示されます。ツールチップは、チャートの端に「浮動」しません。自分の環境で実行した2番目(面)の例では、プロットの2行目のファセットチャートが最初の行に比べて非常に浅く、ツールチップを表示するのに十分なスペースがないことがわかります。 – liam

答えて

0

一つの可能​​性/回避策はhovermode'y'に、すなわちへのあなたの例の最後の行を変更設定することですあなたの2番目の例のフルスクリーン。 enter image description here

+0

同じ問題がhovermodeを使用して残っています。実際には、これらの例で明らかなように、動作をさらに強調しています。 ![hovermode low y point](https://github.com/liamcaffrey/svg_tooltip/blob/master/Hovermode_low_point.png)と![hovermode high y point](https://github.com/liamcaffrey/svg_tooltip/blob/master/Hovermode_high_point.png)。 – liam

+0

少なくともそれは何かを示しています:/ Plotlyメーカーから何かを要求しなければならないようです。 –

0

私はこの動作を回避するための唯一の方法は、1つまたは2つの行の深さではないことを確認することです。これは、最初はツールチップの意図が何であるか!それは私が行くつもりです。

「ツールチップ」で、td/tableを含むうまく書式設定されたツールチップを作成したいと考えていました。おそらく、この効果を達成するための別のアプローチがありますか?

関連する問題