以下のMWEは私の本当の目標を単純化します。しかし、私は描画に長い時間がかかる背景イメージを持っています(下の例では、単純に32 mtcarsのデータセット値の散布図です)。ユーザーは自分の背景画像から特定のポイントをクリックすることができ、これにより新しいポイントがプロットされます。私の目指しているのは、これらの新しいポイントを最上位レイヤーに単純に再描画することですが、バックグラウンド画像散布図は、時間と計算を節約するために再描画する必要はありません。次のようにバックグラウンドプロットを再描画せずに、プロットしたRに対話的にポイントを追加する
マイMWEは:
library(plotly)
library(htmlwidgets)
g <- ggplot(mtcars, aes(x=mpg, y=cyl)) + geom_point()
gP <- ggplotly(g)
gP %>% onRender("
function(el, x) {
myGraph = document.getElementById(el.id);
el.on('plotly_click', function(e) {
console.log(e)
console.log(e.points[0].x)
var trace1 = {
x: [e.points[0].x-.3, e.points[0].x-.3, e.points[0].x+.3, e.points[0].x+.3],
y: [e.points[0].y-.3, e.points[0].y+.3, e.points[0].y-.3, e.points[0].y+.3],
type: 'scatter',
fillColor : 'red',
size: 20
};
Plotly.addTraces(el.id, trace1);
})}
")
32個の黒点、4色の赤色の点のいずれかをユーザーがクリックをクリック黒色点の周りに描かれている場合。これは主に動作しており、32個の黒のデータポイントのいずれかをクリックすると、その周囲に4つの色付きの点が描かれています。しかし、私はいくつかの質問で苦労したままです:
1)どのようにして4つの色付きの点が線で結ばれないように改善できますか?
2)サイズとfillColorを実際に動作させるにはどうすればよいですか?私がその価値を変えたとき、私はそれらの価値が変わるのを見ません。
3)対話性と描画をできるだけ速くするには、合理的な構文ですか?背景画像が効率的に再描画されていないのは確かですが、このシンタックスを初めて熟知しているので、それについての確認が大好きです。トップレイヤーに100ポイントの新しいポイントを追加すると、それでも効率的でしょうか?そうでない場合は、構文の改善のためのアドバイスを聞いていただければ幸いです。
ありがとうございます。