全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1586
推到 Plurk!
推到 Facebook!

有關TChart座標的怪問題?

尚未結案
cc12345
一般會員


發表:32
回覆:35
積分:13
註冊:2005-01-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-08 11:48:20 IP:61.219.xxx.xxx 未訂閱
大家好, 在TChart裡頭分兩次畫點, 出現了以下的怪問題, 請問是何原因? Series1->Clear();   TColor color = StringToColor( "clRed" );   TColor color2 = StringToColor( "clBlue" );      int xx[3] = { 10,20,30 };   int yy[3] = { 100,200,300 };   for( int i=0;i<3;i ) { Series1->Add( yy[i], xx[i], color ); } Series1->Add( 250, 25, color2 ); 另外, 有沒有辦法讓 TPointSeries 與 TLineSeries並存, 並且使用同樣的座標,不致出現如上的情形. 謝謝 !
cc12345
一般會員


發表:32
回覆:35
積分:13
註冊:2005-01-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-08 12:01:43 IP:61.219.xxx.xxx 未訂閱
sorry, 剛剛上傳圖片忘了貼連結..
引言: 大家好, 在TChart裡頭分兩次畫點, 出現了以下的怪問題, 請問是何原因? Series1->Clear(); TColor color = StringToColor( "clRed" ); TColor color2 = StringToColor( "clBlue" ); int xx[3] = { 10,20,30 }; int yy[3] = { 100,200,300 }; for( int i=0;i<3;i++ ) { Series1->Add( yy[i], xx[i], color ); } Series1->Add( 250, 25, color2 ); 另外, 有沒有辦法讓 TPointSeries 與 TLineSeries並存, 並且使用同樣的座標,不致出現如上的情形. 謝謝 !
chi30
一般會員


發表:5
回覆:17
積分:4
註冊:2005-01-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-08 18:41:18 IP:59.121.xxx.xxx 未訂閱
Add 的用法不是你想的那樣.Add 是用在你的x軸不是數值時的用法.  例如: 三個小孩的體重比較                   **                **     **         **            **         **       **     **         **       **     **         **       ** ________________________________    小明       小王     小強    正確的方方法是要用 AddXY(xValue, yValue). 你的其中一點是藍色的. 這就必須把 Series::ColorEachPoint 這個值改成true 然後把點加進來後再一一改色.  請參考下面的寫法 .     Chart1->Series[0]->ColorEachPoint = true; Chart1->Series[0]->Clear();    int xx[4] = { 10,20,30,25}; int yy[4] = { 100,200,300,250 };    for( int i=0;i<4;i ) { Chart1->Series[0]->AddXY( xx[i], yy[i]); } for( int i=0;i<4;i ) Chart1->Series[0]->ValueColor[i] = clYellow; Chart1->Series[0]->ValueColor[2] = clBlue; YoHo~~~
------
YoHo~~~
chi30
一般會員


發表:5
回覆:17
積分:4
註冊:2005-01-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-08 18:42:59 IP:59.121.xxx.xxx 未訂閱
Add 的用法不是你想的那樣.Add 是用在你的x軸不是數值時的用法.  例如: 三個小孩的體重比較    |             ** |                |    **                |                      **     | | |________________________________     小明     小王     小強    正確的方方法是要用 AddXY(xValue, yValue). 你的其中一點是藍色的. 這就必須把 Series::ColorEachPoint 這個值改成true 然後把點加進來後再一一改色.  請參考下面的寫法 .     Chart1->Series[0]->ColorEachPoint = true; Chart1->Series[0]->Clear();    int xx[4] = { 10,20,30,25}; int yy[4] = { 100,200,300,250 };    for( int i=0;i<4;i ) { Chart1->Series[0]->AddXY( xx[i], yy[i]); } for( int i=0;i<4;i ) Chart1->Series[0]->ValueColor[i] = clYellow; Chart1->Series[0]->ValueColor[2] = clBlue; YoHo~~~
------
YoHo~~~
chi30
一般會員


發表:5
回覆:17
積分:4
註冊:2005-01-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-08 18:46:48 IP:59.121.xxx.xxx 未訂閱
少回答一個問題 PointSeries 跟LineSeries 是可以共存的
------
YoHo~~~
cc12345
一般會員


發表:32
回覆:35
積分:13
註冊:2005-01-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-11 12:48:04 IP:61.219.xxx.xxx 未訂閱
謝謝chi30, 問題解決了, 真的是太感謝.    想再請問, 為什麼Add不能用在x軸是數值的狀況? 照我的例子我之前也是可以正確畫出我想要的點呀?  請不吝指教, 謝謝.    
引言: 少回答一個問題 PointSeries 跟LineSeries 是可以共存的
chi30
一般會員


發表:5
回覆:17
積分:4
註冊:2005-01-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-12 10:06:32 IP:59.121.xxx.xxx 未訂閱
引言: 謝謝chi30, 問題解決了, 真的是太感謝. 想再請問, 為什麼Add不能用在x軸是數值的狀況? 照我的例子我之前也是可以正確畫出我想要的點呀? 請不吝指教, 謝謝.
Add function 的設計就是這樣. Add(yValue, Label) 中傳入的第一個變數是y作標值, 第二個變數是 在x 軸的標籤 (不是數值!!) 你可以把你程式中x[3]改成{30,20,10} 你執行一下你會發現 在 x 軸的座標順序變成 30, 20, 10, 25. 因為Add會把x[i] 當成標籤 而不是數值. 了解了嗎? YoHo~~~
------
YoHo~~~
chi30
一般會員


發表:5
回覆:17
積分:4
註冊:2005-01-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-12 10:13:03 IP:59.121.xxx.xxx 未訂閱
引言: 謝謝chi30, 問題解決了, 真的是太感謝. 想再請問, 為什麼Add不能用在x軸是數值的狀況? 照我的例子我之前也是可以正確畫出我想要的點呀? 請不吝指教, 謝謝.
Add function 的設計就是這樣. Add(yValue, Label) 中傳入的第一個變數是y作標值, 第二個變數是 在x 軸的標籤 (不是數值!!) 你可以把你程式中x[3]改成{30,20,10} 你執行一下你會發現 在 x 軸的座標順序變成 30, 20, 10, 25. 因為Add會把x[i] 當成標籤 而不是數值. 你之前之所以會成功是因為你輸入的順序剛好依照x 軸的大小. 如果還是不懂就照我上面的說法去玩玩. 應該不難理解的. YoHo~~~
------
YoHo~~~
cc12345
一般會員


發表:32
回覆:35
積分:13
註冊:2005-01-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-04-12 10:34:16 IP:61.219.xxx.xxx 未訂閱
了解了~ 謝謝.    
引言:
引言: 謝謝chi30, 問題解決了, 真的是太感謝. 想再請問, 為什麼Add不能用在x軸是數值的狀況? 照我的例子我之前也是可以正確畫出我想要的點呀? 請不吝指教, 謝謝.
Add function 的設計就是這樣. Add(yValue, Label) 中傳入的第一個變數是y作標值, 第二個變數是 在x 軸的標籤 (不是數值!!) 你可以把你程式中x[3]改成{30,20,10} 你執行一下你會發現 在 x 軸的座標順序變成 30, 20, 10, 25. 因為Add會把x[i] 當成標籤 而不是數值. 你之前之所以會成功是因為你輸入的順序剛好依照x 軸的大小. 如果還是不懂就照我上面的說法去玩玩. 應該不難理解的. YoHo~~~
系統時間:2024-05-12 4:46:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!