具体步骤:

一,拖控件,从控件组中拖出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 ;

文章出處 http://www.cnblogs.com/boloyonghao/archive/2012/07/23/2605186.html

文章出處 http://bbs.csdn.net/topics/198926

文章出處 http://anony3721.blog.163.com/blog/static/5119742010259465537/

文章出處 http://wiki.freepascal.org/TAChart_documentation

arrow
arrow
    全站熱搜

    Chi Learning 發表在 痞客邦 留言(0) 人氣()