私は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. Visibloxグラフのパンまたはズームイン後の軸の自動拡大
- 5. 複数のグラフのトレースをプロットして拡大する
- 6. Heroku:複数の従業員に拡大する方法
- 7. UIPinchGestureRecognizer xcodeで画像を拡大/パンする
- 8. Javascriptで複数の画像を拡大/縮小/拡大/縮小する最適な方法は?
- 9. フィード方法d3のライブチャートのリアルタイムデータ
- 10. JFreechartグラフに複数のグラフをプロットする方法
- 11. パン複数の画像simultaniosly
- 12. 複数のdivでangularjs棒グラフを再利用する方法
- 13. CKEditorで数学フィールドを拡大する方法
- 14. 画像拡大鏡 - マウスを動かすとホバーとパンの画像が拡大されます
- 15. ダイアログスタイルのアクティビティでイメージを最大サイズに拡大する方法
- 16. 次のコードで複数のクラスを拡張する方法
- 17. サフィー付きのWebページでpygal svgグラフを拡大する
- 18. ツリー/グラフ、複数の親と子を表現する方法?
- 19. 三角形を拡大/拡大/拡大/拡大するアルゴリズム
- 20. x軸ズームとパンを制限する浮動小数点数ベースのグラフ
- 21. Android - 画像の一部を円形に拡大/拡大する方法は?
- 22. Googleマップでパンする方法は?
- 23. 複数行グラフを更新/再描画する方法は?
- 24. 複数のパンテーブルビューセルをパンするのを防ぐ
- 25. C#パンを実装する方法
- 26. 2D OpenGL ESシーンをパンする方法
- 27. Python:Tkinter LabelFrame:LabelFrameの周囲の行をウィンドウで拡大する方法
- 28. 拡大変数
- 29. グラフAPIのフィールド拡張を結合する方法は?
- 30. AndroidでBottomNavigationBarの選択したタブを拡大する方法
:ロスは述べたと方法でそのイベントループのためにすべての軸を通って、軸の名前をチェックしてから、このようのminValueとmaxValueのを変更しますあなたのコードは、ループが呼び出されるたびにビジュアルツリーを移動する必要はありません。それがたくさん呼ばれると、パフォーマンスのボトルネックになる可能性があります。 –
はい私は最初のグラフの数を知らないので、実行時にグラフを追加しています。 .add()メソッドはボトルネックにつながることは知っていますが、他の方法はないと思います。 – LBajlo
はい、一度追加してしまえばキャッシュするので、すべてのループでツリーを歩いているわけではありません。フォームの存続期間中にそれらを追加/削除すると、キャッシュを無効にするだけで、キャッシュが再びロードされます。 –