我有一個程序運行在一臺服務器上,該服務器每5秒鐘聯繫一次其數據的在線API。數據以成對的形式保存在數據庫中。一對由一個UNIX-Timestamp和一個double值組成。 在我的C#應用程序中,我想同時顯示2個API的值。 X軸包含時間戳,Y軸包含雙精度值。 確保兩個系列具有相同的X值 - 只有Y值不同。它看起來像這樣:C#圖表:關於ChartAreas.Cusor和讀取X/Y值的多個問題
你可以看到,我已經添加了ChartArea [0] .CursorX的圖表(綠線)。它得到像這樣更新:
private void chart1_MouseMove(object sender, MouseEventArgs e)
{
Point p = new Point(e.X, e.Y);
chart1.ChartAreas[0].CursorX.SetCursorPixelPosition(p, true);
DateTime t = DateTime.FromOADate(chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.X));
graph_time.Text = t.ToLongTimeString();
}
因此,綠色的CursorX被設置爲鼠標的X位置。但是,我將其間隔設置爲5秒。
- 首先問
我試圖與這些線
DateTime t = DateTime.FromOADate(chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.X));
graph_time.Text = t.ToLongTimeString();
的問題是,以顯示CursorX的x值在標籤,它顯示的X值從真實光標(我隱藏)而不是綠線的位置。我怎樣才能得到綠線X軸的價值?
- 第二個問題
我也想要顯示的綠/藍和綠/紅色線的交叉點的兩個單獨的標籤值。有沒有人有一個想法如何做到這一點?我閱讀了HitTest,但你需要一個X和Y值。我需要類似Vertical HitTest的東西。
- 第三和最後一個問題
是否有綁定的綠線(ChartArea.CursorX)實際exisiting數據點,而不是設置一個間隔的可能性?因爲它有兩個問題:1.當圖表的對看起來像這樣(時間戳,值){2,1.23},{7,43.2},{12,5.3}和CursorX間隔設置爲5秒,CursorX停在X = 0,5,10而不是X = 2,7,12。 2.有時,兩對之間的時間差異不是5秒鐘,它有時可能是4或6.間隔5秒會產生錯誤 - 因爲我希望CusorX僅停留在現有的DataPoints上。
所以,就是這樣。我今天第一次嘗試了C#中的圖表,並且有很多很酷的想法涌入我的腦海 - 有很多問題需要實現。希望你們中的一些人擅長C#圖表,並可以幫助我:)
謝謝!