最近NVD3チャートを使い始めました。ハイチャートのようなズームオプションが好きです。出来ますか?HighchartsのようにNVD3チャートでズームオプションを使用することはできますか?
8
A
答えて
5
nv.models.lineWithFocusChart()
を使用する「ビューファインダを持つ折れ線グラフ」の例があります。このチャートタイプのスポーツをあなたはズームとチャートをパンするために使用することができ、メインチャートの下に追加の「ミニマップ」:
1
あなたのnvd3チャートにこの機能を適用することができます。 Highchartsのようにズームを補助するためのドラッグ可能なボックスはありませんが、ここに示すようにマウススクロールによるズームが可能です:pan+zoom example。スムーズなズームを実現するには、nvd3からトランジション/ディレイを削除する必要があります。今のところ、nvd3ソースファイルを変更して手動で行う必要があります。それについての議論がありますhere。
ここにはjsfiddleがあります。
function addZoom(options) {
// scaleExtent
var scaleExtent = 10;
// parameters
var yAxis = options.yAxis;
var xAxis = options.xAxis;
var xDomain = options.xDomain || xAxis.scale().domain;
var yDomain = options.yDomain || yAxis.scale().domain;
var redraw = options.redraw;
var svg = options.svg;
var discrete = options.discrete;
// scales
var xScale = xAxis.scale();
var yScale = yAxis.scale();
// min/max boundaries
var x_boundary = xScale.domain().slice();
var y_boundary = yScale.domain().slice();
// create d3 zoom handler
var d3zoom = d3.behavior.zoom();
// fix domain
function fixDomain(domain, boundary) {
if (discrete) {
domain[0] = parseInt(domain[0]);
domain[1] = parseInt(domain[1]);
}
domain[0] = Math.min(Math.max(domain[0], boundary[0]), boundary[1] - boundary[1]/scaleExtent);
domain[1] = Math.max(boundary[0] + boundary[1]/scaleExtent, Math.min(domain[1], boundary[1]));
return domain;
};
// zoom event handler
function zoomed() {
yDomain(fixDomain(yScale.domain(), y_boundary));
xDomain(fixDomain(xScale.domain(), x_boundary));
redraw();
};
// zoom event handler
function unzoomed() {
xDomain(x_boundary);
yDomain(y_boundary);
redraw();
d3zoom.scale(1);
d3zoom.translate([0,0]);
};
// initialize wrapper
d3zoom.x(xScale)
.y(yScale)
.scaleExtent([1, scaleExtent])
.on('zoom', zoomed);
// add handler
svg.call(d3zoom).on('dblclick.zoom', unzoomed);
};
// here chart is your nvd3 model
addZoom({
xAxis : chart.xAxis,
yAxis : chart.yAxis,
yDomain: chart.yDomain,
xDomain: chart.xDomain,
redraw : function() { chart.update() },
svg : svg
});
関連する問題
- 1. NVD3チャートでコールバックを使用するには
- 2. NVD3設定を使用すると、1つとして、グラフを持つことができますNVD3で
- 3. Nvd3チャートのトップラインパッディング
- 4. スクロールとズームオプションのMapViewのようなScrollviewを使用
- 5. Vaadin-Charts/Highcharts SolidGaugeチャートで値のツールチップを無効にするにはどうすればよいですか?
- 6. NVD3とClojureScriptでチャートの静的なチック数を設定する
- 7. highcharts-チャート
- 8. Highcharts - チャート
- 9. このデータを使ってnvd3.jsにグラフを生成することはできますか?
- 10. ペイントセグメントは、私は、この画像のようにチャートhighchartsの最後の部分を描きたかった
- 11. HighChartsのドリルダウンを動的にリフレッシュすることはできますか?
- 12. princeXMLでhighchartsを使用するには?
- 13. このように1つのクエリでCOUNTとINNER JOINを使用することはできますか?
- 14. highcharts - 私はこのような高いチャートのコードを持って
- 15. RailsインスタンスのjQueryチャートで動作するように各ループを作成することはできません
- 16. HighChartsのデータプロパティに変数を渡すことはできますか?
- 17. HighchartsをReact-Nativeで使用できますか?
- 18. データバインディングとは何ですか?どのようにAsp.Net MVCで使用することができますか?
- 19. は、どのように私はここでHighchartsでピラミッドチャートの一例であるHighcharts
- 20. Node.jsがJavascriptエンジンとしてRhinoを使用できるようにすることはできますか?
- 21. x軸の月をnvd3のチャートで表示する - odoo?
- 22. 私はNVD3に例を再現しようとしているが、私はD3とNVD3に新しいです
- 23. Highcharts/highstock IEでチャートのタイトルを変更する方法は?
- 24. このようにAjaxPanelを使用できますか?
- 25. このようにMySql CASEを使用できますか?
- 26. 子アクターは親のプロパティを使用することはできますか?このような状況では
- 27. flowのようにtypescriptをオプションで使うことはできますか?
- 28. NVD3チャートを反応的にするには?
- 29. どのようにinstanceof使用を避けることができますか?
- 30. Highstockは{point.tt}を使用できますが、Highchartsはそうではありません、なぜですか?
あなたのリンクは壊れています – Ofiris
ありがとう、それを修正しました。 –
散布図にこのような機能はありますか?そうでない場合は、どうすれば追加できますか? – Dinesh