0

これが、散布図をC#で構築する必要があると私が考える方法です(かなり高いレベルの抽象化で)。

  1. 空白の画像を作成する
  2. TextRendererを使用して、軸のラベルとスケールを描画します(水平はそれほど簡単ではありませんが、管理しやすくなります)。
  3. 軸の目盛りと軸自体の線となる線をいくつか描画します
  4. いくつかのデータセットにリストされているポイントに基づいて、いくつかの円を描きます(これを行う方法の100%ではありませんが、それほど難しくはありません)。
  5. 画像をpictureBoxに表示します。
  6. マウスホバーで呼び出される関数を作成します。この関数は、ツールチップにそのポイントに関する詳細を表示します。

これも意味がありますか?仕事に間違ったコントロールを使用していますか?.NETには、これの大部分をすでに実行するコードがありますか(グラフクラスは棒グラフにのみ適しているようです)?C#からExcelのプロット機能にアクセスする方法はありますか?

私には、これらすべてが非常に工夫されているように思われます。散布図クラスをより適切に設計する方法についての情報をいただければ幸いです。

4

2 に答える 2

2

Microsoft Chart Controlsライブラリは、棒グラフ以上のことを実行できます。.NET 4フレームワークに含まれていますが、.NET3.5SP1の個別のダウンロードとしても利用できます。サンプルはここから入手でき、主な機能のほとんどを示しています。

于 2012-04-16T06:36:46.540 に答える
1

いいえ、それは理にかなっています。「プロ」がどのようにそれを行うのかはよくわかりませんが、簡単な散布図が必要な場合は、それを作成するのとほぼ同じです。覚えておくべきいくつかのこと:

  • Draw()メソッドを上に配置し、データポイントの変換された座標を取得する必要があります。これは、最終的にはズームとパンが必要になるためです。3Dグラフィックプログラミングからページを取得し、明示的な変換行列(XNAにはいくつかあります)を使用するだけで、おそらく多くの問題を回避できます。
  • 特殊なサブルーチンを呼び出して個々のポイントを描画する一般的な「ポイントの描画」機能が必要な場合があります。これにより、さまざまな種類のポイント(十字、円、ドット、正方形、ひし形など)を簡単に切り替えることができます。色も。
  • 非常に多くのデータポイントをどのように処理するつもりですか?それは、よく考えられていないChart APIをすぐに挽いて、私の経験を停止させる可能性があります。
于 2012-04-16T02:47:19.093 に答える