2017-08-15 6 views
0
library(ggplot2) 
library(plotly) 
dataset = data.frame(x = c(1,10, 100, 1000), 
       y = c(1000, 100, 10, 1)) 
p = ggplot(data = dataset, aes(x = x, y = y)) + geom_point() + geom_line() + 
scale_x_log10() + scale_y_log10() 
ggplotly(p) 

上記のコードでは、ツールチップを使用してプロットグラフを作成できます。 x軸とy軸は元のデータを示します。しかし、ツールチップの値は(0,3)、(1,2)、(2,2)、(3,0)として表示されます。私がツールチップにしたいのは、(1,1000)、(10,100)、(100,10)、(1000,1)です。プロットのツールチップの値を変更する

これを行う方法はありますか?

答えて

0

Plotlyは入力値を数値として受け取るのではなく、軸ラベルを上書きします。ツールチップは、これらの値とは独立したテキストを示しているため、xとyの値を変更する

> gp$x$data[[1]]$x 
[1] 0 1 2 3 
> gp$x$data[[1]]$y 
[1] 3 2 1 0 

は、さらに多くの作業が発生します。この例の最も簡単な解決方法は、text属性を上書きすることです。

enter image description here

library(ggplot2) 
library(plotly) 
x <- c(1,10, 100, 1000) 
y <- c(1000, 100, 10, 1) 
dataset = data.frame(x = x, 
        y = y) 
p = ggplot(data = dataset, aes(x = x, y = y)) + geom_point() + geom_line() + 
    scale_x_log10() + scale_y_log10() 

gp <- ggplotly(p) 
gp$x$data[[1]]$text = paste(x, y, sep='<br />') 
gp 
+0

ありがとうございます!これは非常にスマートです。 – Vera0816

関連する問題