http://techanjs.org/で使用されているコードとほとんど同じコードを使用しています。開発者がグラフをhereにレンダリングしたときに、グラフにズーム機能を追加しようとしていました。しかし何とか私はそれをズームすることができません。エラー選択がコンソールで定義されていません。私はチャートをレンダリングするために次のコードを使用しています。 https://paste.fedoraproject.org/paste/7gJq9wKL4h4s862EDuxnQQ。私はここで何か間違っていると確信しています、私はまだD3を学んでいるので、私はそれに関する援助を得る場合は本当に感謝します。d3 techanjsをズームできません
答えて
私は変数selection
を参照していますが、定義されていないことが問題だと思います。したがって
-
選択が
selection
が定義されていませんが、あなたのbigchart
関数に渡されるパラメータです。
ただし、定義されていない機能のreset
、zoomed
で使用します。
//Zoom Begins
function reset() {
zoom.scale(1);
zoom.translate([0,0]);
selection.call(draw); // this will throw an error
}
function zoomed() {
x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());
y.domain(d3.event.transform.rescaleY(yInit).domain());
yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());
selection.call(draw); // this will throw an error
}
//Zoom Ends
いずれか、固定(他の機能のような)パラメータとして関数に選択を渡すために - あるいはそれはreset
とzoomed
機能で参照できるようにselection
BigChart
のプロパティします。あなたは明らかに関数を呼び出すとき
すなわち
// pass selection to the functions as a parameter
function reset(selection) {
zoom.scale(1);
zoom.translate([0,0]);
selection.call(draw);
}
function zoomed(selection) {
x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());
y.domain(d3.event.transform.rescaleY(yInit).domain());
yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());
selection.call(draw);
}
は、その後、例えば...正しいオブジェクトを渡します。
zoom = selection.call(d3.zoom().on("zoom", zoomed));
ではなく
zoom = d3.zoom().on("zoom", zoomed),
ズーム= selection.call(d3.zoom()。on( "zoom"、zoomed))を使用すると、コードを試しました。私は、その行には選択が定義されておらず、チャートはレンダリングされていません。しかし、私がズーム= d3.zoom()。on( "zoom"、zoomed)を使用すると、チャートはうまくレンダリングされますが、ズームしようとするとエラーが発生します。なにか提案を? – DAKSH
はい、最小、完全、および検証可能な例を投稿してください - stackoverflow.com/help/mcve - 例のzoom = selection.call(d3.zoom()。on( "zoom"、zoomed));どのように選択肢に合格するかを示すことでした。コピーして貼り付けることではありませんでした。明らかに "選択"は使用する前に定義されていません - それが問題の根です! – Fraser
http://bl.ocks.org/andredumas/edf630690c10b89be390で別のコードセットが見つかりました。ブラウザの幅に合わせてサイズを変更することは可能ですか?ここではズームが完璧に機能するからです。 – DAKSH
- 1. D3マルチシリーズライングラフ(ズーム付き)
- 2. JSONデータを使用したtechanJS D3の例
- 3. ImageViewをズームできません
- 4. SafariのD3.jsズームがマウスホイールと連携していません
- 5. d3スタッキングとズーム
- 6. D3キャンバスブラシとズーム
- 7. d3でデータをバインドできません
- 8. D3 - D3のSVGシンボルでズームする
- 9. D3バージョン4で水平ズーム?
- 10. 手動ズームでd3エラー
- 11. D3.js軸でズームする
- 12. D3 X軸をズームする
- 13. d3でグラフをドラッグ&ズームする
- 14. D3.jsでポリゴンをズームする方法
- 15. D3マウスホイールのズーム方向
- 16. D3 v4でズーム可能なツリーマップ
- 17. 特定のWebページのUIWebViewをズームできません
- 18. d3.jsバージョン4 - rectズーム - 変換が正しくできない
- 19. D3 - クリックイベントでデータパラメータを取得できません
- 20. D3 - CSSのクラスでテキストの色を設定できません
- 21. D3.js:svgのズームを理解する
- 22. d3.js散布図をズーム/ドラッグ
- 23. d3.jsを使ったズーム棒グラフ
- 24. ズームのプロパティをリセットするd3
- 25. D3.jsでズームまたはパンするときのドメインを制限する
- 26. 正しいd3.extentアクセサを設定できません
- 27. d3アプリケーションのテキストタグにブートストラップポップオーバーを追加できません
- 28. csvからD3データセットを作成できません
- 29. D3単純な行をレンダリングできません
- 30. d3イベントエラーのためにタイプスクリプトをトランケイルできません
、最小完全、かつ検証例 ずに言うのは本当に難しい - https://stackoverflow.com/help/mcve - エラーを投げているもの、たとえば、それは?それ以上の情報がなければ、助けはかなり難しいです。 – Fraser
私は本当に他の機能がズームと一緒に欲しいので、それを最小化するのは難しいです。 – DAKSH
それから、賞金が払い戻されると、投票を終了します。 - デバッグのヘルプを探す質問(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、質問自体。単純なエラーは、定義されていない関数で "選択"を使用しようとしているためです。 – Fraser