2012-04-16 54 views
0

下面是我認爲散點圖應該用C#構建的方式(在一個體面的高抽象層次上)。構建一個散點圖類

  1. 創建一個空白圖像
  2. 使用TextRenderer繪製軸標籤和刻度(水平不會那麼微不足道,但仍是可控的)。
  3. 繪製一些線條,這些線條是軸線上的刻度線和軸線自身的線條
  4. 根據點繪製一些圓圈(不是100%如何做到這一點,但不能太難)列在一些數據集中。
  5. 將圖像顯示在圖片框中。
  6. 創建一個將在MouseHover上調用的函數,該函數將在工具提示中顯示關於該點的一些詳細信息。

這是否有意義?我是否在工作中使用了錯誤的控件? .NET中是否有一些代碼已經完成了大部分代碼(圖表類似乎只適用於條形圖)?有沒有辦法從C#訪問Excel的繪圖功能?

對我來說,所有這些看起來都很有意思,我希望能夠更好地設計一個散點圖類。

+1

這絕對不是真的微軟圖表控件只適用於條形圖。我會看看這些示例:http://archive.msdn.microsoft.com/mschart – 2012-04-16 02:34:43

+0

@mikez,感謝您將它引入我的注意,發佈它作爲答案,並且我將它標記爲正確。 – soandos 2012-04-16 05:13:23

回答

2

Microsoft Chart Controls圖書館可以做的不僅僅是條形圖。它包含在.NET 4框架中,但也可以作爲.NET 3.5 SP1的單獨版本download提供。樣品可用here並展示大部分主要功能。

1

不,這確實有道理。我真的不知道「專業人士」是如何做到的,但是當你需要一個快速的散點圖時,你幾乎可以製作一個。請注意以下幾點:

  • 您希望Draw()方法位於頂部並獲取數據點的轉換座標。這是因爲你最終會想要縮放和平移。從3D圖形編程中獲取一個頁面,並使用一個明確的轉換矩陣(在XNA中有一些)可能會爲您節省很多麻煩。
  • 您可能需要一個通用的「繪圖點」功能,它可以調用專門的子例程繪製各個點,因此您可以輕鬆地在不同類型的點(十字,圓形,點,方形,菱形等等)之間切換)。也是顏色。
  • 你打算如何處理大量的數據點?根據我的經驗,這可能會很快將研究得不好的Chart API停下來。