關於C++ Builder中TChart的一些用法

具體步驟:

一,拖控件,從控件組中拖出TChart控件.

二,雙擊TChart,按add添加所需數據組.

三,通過代碼對其屬性進行操作,修改.

四,錄入數據點,生成圖像.

 

以折線統計圖爲例,以下記錄一些常用的接口及具體用法.

    double * data ;
    int N=2048 ;                  //動態成生數據組。
    data = new double[N] ;      //整個Y軸向量一次性添加。注意總點數爲N-1。
    Series1->Clear() ;
    Series1->AddArray( data, N-1 ) ;       //逐個數添加於X軸,Y軸爲點號。
    Series1->Clear() ;
    for( int ii=0; ii<N; ii++ )
        Series1->AddX( ii/0.2, "", clBlue ) ;      //逐個數添加於Y軸,X軸爲點號。
    Series1->Clear() ;
    for( int ii=0; ii<N; ii++ )
        Series1->AddY( ii/0.2, "", clBlue ) ;

    // Line類型的Series是逐個數據進行添加。 待所有的數據加入以後,從左到右邊線,數據輸入不分先後。
    // Horizontal Line類型的Series是按數據添加順序進行畫圖,逐點連線。

     Series1->Clear() ;
    for( int ii=0; ii<N; ii++ )
        {
            data[ii] = sin( 2*3.14*0.05*ii/22.0+1.2 ) ;
           Series1->AddXY( ii/0.5, data[ii], "", clRed ) ;
        }

       for( int ii=0; ii<N; ii++ )
          {
             data[ii] = sin( 2*3.14*0.05*ii/40.0+1.0 ) ;
             Series1->AddXY( ii/0.5, data[ii], "", clRed ) ; 
          }


    //線型 線號
    Series1->Pen->Width = 2 ; 
    Series1->Pen->Style = psDashDot ;
    
    //OutLine->Visible = true 情況下有起作用。
    //Series1->OutLine->Visible = true ;
    Series1->LinePen->Color = clBlue ;
    Series1->OutLine->Color = clBlue ;
    Series1->Pen->Color = clBlue ;

    // 線顏色
    Series1->SeriesColor = clGreen ;
   

    //軸名稱,字體,顏色,字號。下劃線.
    Series1->GetVertAxis->Title->Caption = "Y座標軸" ;                          //GetVertAxis是Y軸
    Series1->GetVertAxis->Title->Font->Color = clRed ;             

    Series1->GetHorizAxis->Title->Caption = "X座標軸" ;                         //GetHorizAxis是X軸

    Series1->GetHorizAxis->Title->Font->Name = "華文行楷" ; 
    Series1->GetHorizAxis->Title->Font->Style=Series1->GetHorizAxis->Title->Font->Style<<fsUnderline ;//下劃線,fsBold爲加粗

    Series1->GetHorizAxis->Title->Font->Size = 24 ;                                  
   
    Chart1->Title->Caption = "標題文字" ;
    Chart1->Title->Font->Size = 36 ;
    Chart1->Title->Font->Color = clGreen ;
    Chart1->Title->Font->Style.Contains(fsUnderline) ;
    Chart1->Title->Font->Name = "華文彩雲" ;
    Chart1->Title->Font->Name = "@華文彩雲" ;                                              //@的作用是90度旋轉

    //對數或性線座標軸。
    Chart1->Series[0]->GetVertAxis->Logarithmic = false ;

    //座標軸線型,線號,顏色。
    Series1->GetHorizAxis->Axis->Style = psDash ;
    Series1->GetHorizAxis->Axis->Width = 3 ;
    Series1->GetHorizAxis->Axis->Color = clRed ;

    //定製座標軸範圍。
    //Series1->GetHorizAxis->SetMinMax( -N/3, N ) ;

    //每一段的線顏色不同
    //Series1->ColorEachPoint = false ;
    Series1->ColorEachLine = true ;


    //三維情況,線的深度
    Series1->Depth = 50 ;

    // 畫線爲階梯形 ,正反階梯形
    Series1->Stairs = true ;
    Series1->InvertedStairs = true ;

    // mark顯示
    Series1->Marks->Visible = true ;

    //數據點突出顯示
    Series1->Pointer->Visible = true ;
    Series1->Pointer->Style = psCircle ;
    Series1->Pointer->Color = clYellow ;
    Series1->Pointer->Pen->Color = clYellow ;

    // 隱藏座標軸,連同它的網格線
    Series1->GetVertAxis->Visible  = false ;
    Series1->GetHorizAxis->Visible = false ;

    //標籤角度
    Series1->GetVertAxis->LabelsAngle = 0 ;
    //標籤間的間距像素值
    Series1->GetVertAxis->LabelsSeparation = 200 ;
    Series1->GetHorizAxis->Labels =false;   //關閉標籤顯示 與網格是關聯的。

    //網格顯示開關
    Series1->GetVertAxis->Grid->Visible  = false ;
    Series1->GetHorizAxis->Grid->Visible = true ;
    Series1->GetHorizAxis->Grid->Color   = clRed ;
    Series1->GetHorizAxis->Grid->Width   = 1 ;
    Series1->GetHorizAxis->Grid->Style   = psSolid ;

    //標籤字號,顏色
    Series1->GetHorizAxis->LabelsFont->Size  = 6 ;
    Series1->GetHorizAxis->LabelsFont->Color = clGray ;
    Series1->GetHorizAxis->AxisValuesFormat  = "#0.0" ;
    Series1->GetHorizAxis->LabelsAngle       = 45 ;
    Series1->GetHorizAxis->AxisValuesFormat  = "0.0e-0" ;   
    Series1->GetVertAxis->LabelsExponent = false ; //

    // Tick (向座標軸外)   TickInner   (向座標軸內)
    Series1->GetHorizAxis->TickLength    = 10 ; 
    Series1->GetHorizAxis->TickInnerLength = 20 ;
    Series1->GetHorizAxis->TicksInner->Visible = false ;

    //座標軸方向
    Series1->GetHorizAxis->Inverted = true ;

    // 標籤間隔數值,正數,如果間隔過小,不足以顯示標籤,則自動採用更大的間隔。
    Series1->GetHorizAxis->Increment = 500 ;

    // 細網格 與細Ticker相關
    Series1->GetHorizAxis->MinorTickCount = 4 ;  

   //細Ticker數,則平分段數爲N+1.
    Series1->GetHorizAxis->MinorGrid->Visible = true ;

    // 細網格 默認顏色是背景色,需要改變才能顯示出來。
    Series1->GetHorizAxis->MinorGrid->Color = clBlue ;
    Series1->GetHorizAxis->MinorGrid->Style = psDot ;

    // 細Ticker
    Series1->GetHorizAxis->MinorTicks->Visible = true ;
    Series1->GetHorizAxis->MinorTickLength = 5 ;
 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章