グラフを左右にスクロールするには、MSChartをクリックして左右にドラッグする方法はありますか? アイデアは、チャートのスクロールバーをドラッグする代わりに、チャートをドラッグすることです。 私は単にスクロールバーを使用していない理由は、この機能(ボスとその要求..)を追加するように求められたためです。 Btw、私はC#とwinformsを使用しています。 私は十分に明確だったと思っています。 ありがとうございます!グラフをスクロールするためにグラフをドラッグする
0
A
答えて
1
はいこれが可能です。
通常のズーム/スクロールの仕組みは、チャート上でドラッグするだけで使用できないという問題が1つあります。
代わりに2つのマウスイベントをコードし、Axis.PixelPositionToValue
関数を使用してデータ値にアクセスします。
まず私たちがクリックした場所のデータ値を格納します。
double mDown = double.NaN;
private void chart1_MouseDown(object sender, MouseEventArgs e)
{
Axis ax = chart1.ChartAreas[0].AxisX;
mDown = ax.PixelPositionToValue(e.Location.X);
}
その後、我々はAxis.Minimum
が移動しMinimum
とMaximum
を適応しているどのくらい古いの範囲を計算します。
private void chart1_MouseMove(object sender, MouseEventArgs e)
{
if (!e.Button.HasFlag(MouseButtons.Left)) return;
Axis ax = chart1.ChartAreas[0].AxisX;
double range = ax.Maximum - ax.Minimum;
double xv = ax.PixelPositionToValue(e.Location.X);
ax.Minimum -= xv - mDown;
ax.Maximum = ax.Minimum + range;
}
あなたがお勧めしますあまりにも左または右にドラッグを防止するためにいくつかのチェックを追加する。
コードでは、yあなたはMinimum
とMaximum
を設定しました!
また、x軸ラベルの書式を制御して、小数点の桁数が多いためにグラフが跳ね返らないようにする必要があることにも注意してください。
それとも、あなたのデータに応じて、あなたは、単にints
にあなたの間隔または私の場合は、適切ないくつかの値の倍数にステップを設定することもできます。あなたが持っている必要がある場合は
ax.Minimum -= (int)(xv - mDown) ;
表示されるスクロールバーは、上記のコードを引き続き使用できます。しかし、このは正常scollingと干渉しを行い
double oldPos = ax.ScaleView.Position;
ax.ScaleView.Position -= (xv - mDown);
:しかし、あなたは、このことによって、この
ax.Minimum -= (int)(xv - mDown);
ax.Maximum = ax.Minimum + range;
を交換する必要があります。スクロールバーに次のように当たっていないことを確認するために小切手を挿入することができます。
RectangleF ipar = InnerPlotPositionClientRectangle(chart1, chart1.ChartAreas[0]);
if (ipar.Contains(e.Location))
{
..
..
でもまだここで動作します。だからまたはが最もうまくいくようです。
InnerPlotPositionClientRectangle
は、hereと定義されています。
関連する問題
- 1. d3でグラフをドラッグ&ズームする
- 2. グラフとグラフを管理するためのPHPとJS
- 3. グラフを作成するためのロジック
- 4. グラフを印刷するためのフラッシュコンポーネント
- 5. フォース・ドラッグ・グラフD3.jsエラー
- 6. 別のグラフにグラフ(adjacency_list)をコピーする
- 7. LWUITを使った円グラフ、棒グラフ、グラフ
- 8. グラフをロードするために永遠に取るOrientdb
- 9. グラフのコンポーネントを独立したグラフに変換する
- 10. ポイントをドラッグしてグラフを編集できるチャートライブラリですか?
- 11. chartjsの棒グラフに水平スクロールを追加するには?
- 12. 動的円グラフをサポートするグラフ/チャート?
- 13. グラフ理論:グラフを分割する
- 14. 円グラフを小さくするグラフJS
- 15. 棒グラフと線グラフを描画する
- 16. [グラフ]:関係のグラフを作成する
- 17. グラフのグラフを基にしたペア
- 18. chart.js棒グラフをスクロール可能にする方法
- 19. JUNGのスクロール時にグラフの端を移動する方法
- 20. フレックスモバイル:棒グラフのズームとスクロール
- 21. CorePlot:線グラフに沿ってデータ線インジケータをドラッグ/スワイプさせる
- 22. グラフを別のグラフに当てる
- 23. Angular 4アプリケーションにd3グラフを含める
- 24. 選択のための画像上にグラフを配置する
- 25. C++で使用するためにPythonからTensorflowグラフをエクスポート
- 26. 比較のためにggplotグラフを変更する
- 27. なぜグラフがドラッグされた後に空白になるのですか
- 28. 内部プロパティとしてグラフに辺の重みを追加するためにまっすぐ進むグラフ
- 29. Keen.io DataVizのグラフを描くが、エラーになっ保つための「グラフを描くが、エラーを取得維持するために折れ線グラフをグラフ化する前に、いくつかのカスタムデータ改ざんを実行しようとしました
- 30. 棒グラフをカスタマイズする - 棒グラフをグラフの下の表と整列させる