2017-05-09 227 views
2

enter image description here我有一個包含12個數據點的簡單圖表。問題是它在開始趨勢線之前顯示一個小白色區域。 下面是代碼質譜圖中的空白區域

for (int i = 0; i < 12; i++) 
{ 
    chart1.Series[0].Points.AddXY(DataTable.Rows[i].ItemArray[0], plotDataTable.Rows[i].ItemArray[1]); 
    chart1.Series[1].Points.AddXY(DataTable.Rows[i].ItemArray[0], plotDataTable.Rows[i].ItemArray[2]); 
    chart1.Series[2].Points.AddXY(DataTable.Rows[i].ItemArray[0], DataTable.Rows[i].ItemArray[3]); 
    chart1.Series[3].Points.AddXY(DataTable.Rows[i].ItemArray[0], DataTable.Rows[i].ItemArray[4]); 
} 

DataTable的第一列是字符串和其他四個是浮動。

+0

一張照片會說超過一千個字。而對於任何人重現,我們將需要圖表屬性(系列配置,...) – dlatikay

+0

遺憾的錯過。 – user3409181

+0

圖像中的白色區域在哪裏?即時看到很多白色區域。 :D也許試試圍攏它?曾試過剪切工具? –

回答

1

您需要的AxisX.Minimum設置爲一個合適的值。

通常這將是0或的第一DataPoint的x值。

但是,您添加值的方式不起作用。

您正在以一種相當不幸的方式添加DataPoints,這有時可以,但更多的時候會造成各種各樣的問題。

推薦的方法是將x值添加爲號碼DateTimes,它們在內部將被轉換爲doubles

但你加strings。這看起來確定但x值不包含那些字符串沒有別的,但0s。 Threfore你不能用它們來設置的範圍或工具提示或變焦範圍或計算的東西..

但是,如果你想通過設置最低至1仍然可以得到你想要的結果:

ChartArea ca = yourChart.ChartAreas[0]; 
ca.AxisX.Minimum = 1; 

enter image description here

我已經添加了我的x值作爲字符串,但它們看起來像數字。

推薦方式將您的值轉換爲數字,所以你可以將它們用於各種各樣的東西..

的幾個注意事項:

  • 這種轉換是通過做圖表,如果可能的話對於y值而不是x值!也許是因爲沒有數字y值的圖表根本沒有意義,而有時x值根本不包含有意義的數字數據,例如名稱,ID,郵政編碼等。

  • 不要讓視覺欺騙你:strings只被複製到軸標籤中;否則會丟失! (你應該用調試器檢查一下!!)

  • 您可能會注意到,截圖中的標籤數量發生了變化。該數字是從x軸的Interval計算得出的。默認情況下會自動計算(Interval=double.NaN)以適合合理數量。您可以將其設置爲您喜歡的任何距離。通常它是指軸單位,但在這種情況下是指點數。將其設置爲2以獲得每個第二點的一個Label;其設置爲0.5拿到2 LabelsDataPoint ..

  • 實數(或DataTimes)的x值,你還可以設置像秒鐘或數天的間隔類型..

+0

非常感謝親愛的 – user3409181

+0

我可以增加x軸標籤的數量嗎? – user3409181

+0

是的。看到我的更新! – TaW

0

默認情況下,ChartArea的IsStartedFromZero屬性設置爲true。該設置將強制圖表始終從零開始。嘗試將其設置爲false:

chart1.ChartAreas[0].AxisX.IsStartedFromZero = false; 
chart1.ChartAreas[0].AxisY.IsStartedFromZero = false; 
+1

好主意!但正如我所解釋的,所有的x值都是'0',所以這在這裏不起作用。 – TaW