私はbeto-rodriguezのライブチャートをWPF用に使用しています。私はxmlファイルからグラフのデータを取得し、グラフを上に1つずつ上に描画し、データを表すグラフはX軸上に同じ数のスポットを持ち、ZOOMとPANはch.Zoom = ZoomingOptions.Xで有効になります。 ch.Pan = PanningOptions.X; 私の質問は、それらのチャートのいずれか(それは関係ありません)を拡大またはパンすることが可能であり、それらのすべてが拡大またはパンされているので、それらのすべてのX軸を垂直に揃えていますか?基本的に、1つのグラフをズームまたはパンすると、他のすべてのグラフは同じ時間に、同じ量でズームおよびパンする必要があります。ライブチャートで複数のグラフを拡大/パンする方法
0
A
答えて
0
何をしなければならないことは、あなたが、その後軸の新しい最小値と最大値を抽出することができ、イベントハンドラでは、各グラフ軸
<lvc:CartesianChart.AxisX>
<lvc:Axis Title="Time" RangeChanged="Axis_RangeChanged" Separator="{x:Static lvc:DefaultAxes.CleanSeparator}" DisableAnimations="True" />
</lvc:CartesianChart.AxisX>
にイベント「RangeChanged」のイベントハンドラを作成し、そこのコマンドを使用して結合することにより、他のいくつかのクールな方法かもしれないが、これは、少なくともあなたが始められるでしょう
private void Axis_RangeChanged(LiveCharts.Events.RangeChangedEventArgs eventArgs)
{
//sync the graphs
double min = ((Axis)eventArgs.Axis).MinValue;
double max= ((Axis)eventArgs.Axis).MaxValue;
this.lvcChart2.AxisX[0].MinValue = min;
this.lvcChart2.AxisX[0].MaxValue = max;
this.lvcChart.AxisX[0].MinValue = min;
this.lvcChart.AxisX[0].MaxValue = max;
//Repeat for as many graphs as you have
}
あなたのページにあなたが持っているすべてのグラフに適用します。
0
私はパンとズームをX軸で垂直に行うことができました。 は、まず私は、XMLを読み取り、livechartsライブラリのために用意されたオブジェクトを作成するクラスを作成し、その後、私は動的にグラフを作成し、名前を軸
Axis axisX = new Axis();
Axis axisY = new Axis();
axisX.Name = "X";
axisY.Name = "Y";
を、すべてを与え、その後@Kevinのような範囲の変化に発射されたイベントを作成します私は、リストでグラフをキャッシュし、実行時にグラフを追加している場合を除き
void axisX_RangeChanged(LiveCharts.Events.RangeChangedEventArgs eventArgs)
{
double min = ((Axis)eventArgs.Axis).MinValue;
double max = ((Axis)eventArgs.Axis).MaxValue;
int p = 0;
string name;
foreach (Axis CartChart in FindVisualChildren<Axis>(TestGrid))
{
// do something with CartChart here
name = CartChart.Name;
if (name == "Y")
{
continue;
}
else if (name == "X")
{
CartChart.MinValue = min;
CartChart.MaxValue = max;
}
p++;
}
}
関連する問題
- 1. dygraph関数 - 同時に複数のグラフを拡大する方法
- 2. D3.js:パンでx方向に拡大
- 3. QScrollAreaで画像を拡大/パンする
- 4. chart.jsのパンも折れ線グラフを拡大
- 5. Visibloxグラフのパンまたはズームイン後の軸の自動拡大
- 6. 複数のグラフのトレースをプロットして拡大する
- 7. ライブチャートでチャートを更新するときに、ズームとパンを変更する
- 8. Heroku:複数の従業員に拡大する方法
- 9. UIPinchGestureRecognizer xcodeで画像を拡大/パンする
- 10. Javascriptで複数の画像を拡大/縮小/拡大/縮小する最適な方法は?
- 11. JFreechartグラフに複数のグラフをプロットする方法
- 12. slick.jsでカスタムスライドを拡大する方法
- 13. パン複数の画像simultaniosly
- 14. フィード方法d3のライブチャートのリアルタイムデータ
- 15. CKEditorで数学フィールドを拡大する方法
- 16. 複数のdivでangularjs棒グラフを再利用する方法
- 17. 画像拡大鏡 - マウスを動かすとホバーとパンの画像が拡大されます
- 18. ダイアログスタイルのアクティビティでイメージを最大サイズに拡大する方法
- 19. Y軸に合わせて自動的にグラフを拡大する方法は?
- 20. 次のコードで複数のクラスを拡張する方法
- 21. ユニティでアニメーターウィンドウをパンする方法は?
- 22. サフィー付きのWebページでpygal svgグラフを拡大する
- 23. イメージを拡大する方法
- 24. 複数の列にわたるZスコアを拡大する
- 25. R複数のgeomを持つグラフをプロットする方法
- 26. 三角形を拡大/拡大/拡大/拡大するアルゴリズム
- 27. dc_leafletのズームやパンで他のグラフを更新する
- 28. Googleマップでパンする方法は?
- 29. Android - 画像の一部を円形に拡大/拡大する方法は?
- 30. ツリー/グラフ、複数の親と子を表現する方法?
:ロスは述べたと方法でそのイベントループのためにすべての軸を通って、軸の名前をチェックしてから、このようのminValueとmaxValueのを変更しますあなたのコードは、ループが呼び出されるたびにビジュアルツリーを移動する必要はありません。それがたくさん呼ばれると、パフォーマンスのボトルネックになる可能性があります。 –
はい私は最初のグラフの数を知らないので、実行時にグラフを追加しています。 .add()メソッドはボトルネックにつながることは知っていますが、他の方法はないと思います。 – LBajlo
はい、一度追加してしまえばキャッシュするので、すべてのループでツリーを歩いているわけではありません。フォームの存続期間中にそれらを追加/削除すると、キャッシュを無効にするだけで、キャッシュが再びロードされます。 –