請教 可否自行設定 圖表 Y軸 的 間格跳距(每個跳距設不同)?? |
尚未結案
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 這兩篇你參考看看 http://www.berneda.com/TeeChart6Docs/TCustomAxisPanel.OnGetAxisLabel.html
http://www.berneda.com/TeeChart6Docs/TCustomAxisPanel.OnGetNextAxisLabel.html ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, Y 軸自訂 <> 某些數值時才顯示 Y 軸自訂由 OnGetNextAxisLabel 中寫程式碼自行控制
控制 Y 軸之數值及繼續 GetNextAxisLabel 與否 某些數值時才顯示 Label 則由 OnGetAxisLabel 中寫程式碼自行控制
主要在決定了 Y 軸數值後,其 Label 之 Text 因此,如果你要固定 y 軸間隔,只是只有特定數字才顯示 Label,設定其遞增之數值並於 OnGetAxisLabel 中控制 如果不是,在 GetNextAxisLabel 中控制下一個 Label 之數值 ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
若如我圖所示
原本我的Y軸區間是0-1200 每100跳一格
那麼原本軸上就沒有450 就算設為1跳1格,它好像也會調成合理的跳格數值
procedure TAxisLabelsForm.Chart1GetNextAxisLabel(Sender: TChartAxis; LabelIndex: Longint; var LabelValue: Double; var Stop: Boolean); begin if Sender=Chart1.LeftAxis then Begin { In this example, we want the Vertical Left Axis to show labels only for positive values, starting at zero and with 250 label increment. } if LabelValue=200 then LabelValue:=LabelValue ELSE if LabelValue=450 then LabelValue:=LabelValue ELSE if LabelValue=500 then LabelValue:=LabelValue else LabelValue:=''; <=不顯示 如何設呢 ?? End; { we want more labels !! } Stop:=False; end; |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 1. Set Minimum of LeftAxis for Chart1 to 0
procedure TForm1.Button1Click(Sender: TObject); begin Series1.FillSampleValues(10); Chart1.LeftAxis.Automatic := False; Chart1.LeftAxis.AutomaticMaximum := True; Chart1.LeftAxis.AutomaticMinimum := False; Chart1.LeftAxis.Minimum := 0; end;2.Add below codes on Event OnGetNextAxisLabel for Chart1 procedure TForm1.Chart1GetNextAxisLabel(Sender: TChartAxis; LabelIndex: Integer; var LabelValue: Double; var Stop: Boolean); begin if Sender = Chart1.LeftAxis then begin case LabelIndex of 0 : LabelValue := 0; 1 : LabelValue := 200; 2 : LabelValue := 450; 3 : LabelValue := 500; else LabelValue := 0; end; end; Stop := False; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |