chart legned的顯示或隱藏 並非在 legend底下,而是在serial底下設定 …. What?
chart1.series[0].IsVisibleInLegend = false; // 隱藏
chart1.series[0].IsVisibleInLegend = true; // 顯示
chart1.series[0].LegendText="數據一"; //
有關Chart 的相關使用
chart legned的顯示或隱藏 並非在 legend底下,而是在serial底下設定 …. What?
chart1.series[0].IsVisibleInLegend = false; // 隱藏
chart1.series[0].IsVisibleInLegend = true; // 顯示
chart1.series[0].LegendText="數據一"; //
如果沒有特別需要排版的要求,很多功能通常都是由預設的Auto,但是Chart的細項太多,常常改動一個就亂套了…
而在Chart的使用中,繪圖區域的大小及位置是由ChartArea中的Position和InnerPlotPosition所控制。
Position(float x ,float y ,float width ,float height)
InnerPlotPosition(float x ,float y ,float width ,float height)
底下為我的理解跟解釋:
我將ChartArea的Boader設定顏色,方便理解。
01# 設定ChartArea的大小,當Position(0,0,80,80),其意義為Chart長寬的各80%,
InnerPlotPosition(0,0,100,100)時,100即實際繪製佔滿了100%長寬的ChartArea。也因此X軸、Y軸標籤超出了ChartArea範圍(即紅藍框),所以不會顯示出來。
02# 將 InnerPlotPosition(0,0,80,50)時,繪製則僅ChartArea Width的50%、Height的80%區域(相對於紅框)
03# 接著設定Position(10, 10, 80, 80) , 左上角當作原點,設定x為距離原點10% w 的距離;設定y為距離原點10%h的距離;
04# 再接著設定 InnerPlotPosition(20,10,100,100),此時以ChartArea(紅框)的左上角為原點,設定x為距離原點20% w 的距離;設定y為距離原點10%h的距離;如下圖,此時X軸、Y軸標籤都顯示出來了。
簡單總結 #
Position為設定ChartArea的大小和位置,參數比例相對於Chart元件尺寸。
InnerPlotPosition為設定繪圖的大小和位置,參數比例相對於ChartArea。
上面的步驟只是輔助理解,一次設定只要兩行就可以得到最後的結果。
有任何疑問歡迎留言討論
設定自動捲動的方法如下,當資料點數超過一百個就會出現ScrollBar,自動捲動並更新,我用Timer簡單寫了一個Sin波做測試,正常的時候會捲動,隨著資料越來越多,Bar會越來越短。
chart1.ChartAreas[0].CursorX.AutoScroll = true;
chart1.ChartAreas[0].AxisX.ScaleView.Size = 100; // 控制顯示的範圍
在不設定的情況下,應該會保持在最右邊,…但天不從人願 (誤 ,總是會有奇怪的情況產生,就是它會停留在左邊,雖然Bar越來越長但不轉動…= =+ 知道原因的麻煩留言告訴我。
最後找到解決的方法如下,再新增資料點數的時候加入ScrollType.Last ,這樣就能夠恢復正常捲動!!!!
chart1.Series[0].Points.AddY( Y_value);
chart1.ChartAreas[0].AxisX.ScaleView.Scroll(ScrollType.Last);
在使用Chart的過程中,最痛苦的莫過於不知道控制向到底藏在哪裡…..感謝網路大神。
AddY方法,點數從1開始。 如有10點,X為1~10。
AddY只能新增單點,DataBind可以併入陣列,但目前沒還沒有找到可以Add(陣列)的方法。
簡單記錄一下實作Chart搭配滑鼠來縮放Chart的圖形,及Zoom In / Zoom out,底下是參考的文章。
使用滾輪縮放
使用中間?(滾輪)事件
https://stackoverflow.com/questions/1951151/the-event-for-middle-mouse-down-and-move
Cursor Line in Chart ( 隨滑鼠移動繪製輔助線?)
https://stackoverflow.com/questions/13869024/cursor-lines-in-chart
Zoom in to show (放大顯示)
https://stackoverflow.com/questions/29985796/chart-zoom-in-to-show-more-precise-data