簡體   English   中英

C#圖表類-x軸的自定義標簽?

[英]C# chart class — custom labels for x axis?

我使用C#通過EntityFramework與MSSQL數據庫進行通信。 我想從圖表中的表格中繪制出的兩列的格式如下:第一列是一個字符串 (這是它提供給我的方式,我知道它可能不是最佳的設計選擇),格式為“ MM / dd / yyyy HH:mm:ss.fff“(其中fff代表毫秒),第二個表是簡單的float值。

我希望x軸代表時間,我希望y軸代表浮點值。 如果我只是按原樣將字符串輸入圖表類,則這些點在水平方向上等距分布。 我嘗試可視化的數據不是按固定的時間間隔出現的,因此這不是理想的行為。

我嘗試做的是將日期字符串轉換為int,每個int表示自從我繪制圖表以來的最早點以來經過了多少毫秒。 這在圖表中很好地顯示,但是我不希望x軸上的點用新計算的整數標記。 我希望x軸顯示原始日期,但是當值轉換為整數時,我想保持相對水平順序不變。 我希望我的問題很清楚。 因此,例如,如果我想可視化以下三個點(01/01/2014 00:00:00.000,y1),(01/01/2014 00:00:00.500,y2)和(01/01/2014 00:00:02.000,y3),如何確保第二個點和第三個點之間的水平距離是第一個點和第二個點之間的水平差的三倍,並且仍將原始日期標簽保留在x上軸?

有什么想法可以做到嗎? 有沒有一種方法可以指定一個函數,該函數將為每個int返回x軸的標簽字符串?

謝謝。

如果您要一一加分-例如,

chart1.Series[0].Points.AddXY(dateString, yValue);

您可以將string對象轉換為DateTime對象,圖表控件可以根據需要輕松顯示這些對象。 只需在調用AddXY之前轉換dateString AddXY

如果您要將數據表從數據庫直接綁定到圖表,則可能無法正常工作。 您可以嘗試設置軸的Format屬性:

chart1.ChartAreas[0].AxisX.LabelStyle.Format = "MM/dd/yyyy hh:mm:ss.fff";

或類似的東西。 不知道這是否可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM