TeeChart 下载本文

先看看AddXY

const UINT nDATALENGTH= 100; double dData[nDATALENGTH]; for (int i=0;i

dData[i] = 100 * sin((float)i)*cos((float)4*i); }

//ClearAllSeries();

CSerieslineSeries = (CSeries)m_TeeChart.Series(0);

lineSeries.Clear();//在最前面加上ClearAllSeries(ClearAllSeries是自己写的函数)就不用了

for(int i=0;i

lineSeries.AddXY((double)i,dData[i],NULL,0); }

由于在TeeChart里,只加了一个FastLine,所以Series(0)就算Fast Line,代码首先获得图像序列m_TeeChart.Series(0); 然后再调用这个序列来作图,作图前先清空图像,用ClearAllSeries()也可以 然后就是一个点一个点的往里加了 做出来的效果:

AddXY的第一个参数是x点坐标,第二个是y点坐标,第三个参数是为了使x坐标特殊显示,这是会替换掉x坐标的显示内容,如我想显示“点xx“可以这样

CString str;

for(int i=0;i

str.Format(_T(\点%d\),i);

lineSeries.AddXY((double)i,dData[i],str,0); }

第四个参数在线图里不起作用,在柱状图里可以设置颜色

2.2.2 普通线图 - AddArray

在数据量特别大时,强烈建议使用AddArray函数 AddArray的函数声明如下

void AddArray(long ArraySize, VARIANT&YArray, VARIANT&XArray);

x,y是两个VARIANT的数据类型,VARIANT有个类型是VT_ARRAY 可以给VARIANT赋一个数组进去 具体操作如下: 方法1:

const UINT nDATALENGTH = 100; double dData[nDATALENGTH];

for (int i=0;i

dData[i] = 100*sin((float)i)*cos((float)4*i); }

//声明如下数据: VARIANT vAX,vAY; SAFEARRAY* psax; SAFEARRAY* psay;

SAFEARRAYBOUND rgsabound; //初始化

rgsabound.cElements=nDATALENGTH; rgsabound.lLbound=0;

psax=SafeArrayCreate(VT_R8,1,&rgsabound);//分配空间 psay=SafeArrayCreate(VT_R8,1,&rgsabound);

vAX.vt=VT_ARRAY|VT_R8;//设置为double型数组,VT_R8就是指double vAX.parray=psax;//把内容加入VARIANT中 vAY.vt=VT_ARRAY|VT_R8; vAY.parray=psay;

//这时VARIANT 就可以加入数据了 double dtemp;//用来临时存放x坐标 for(long i=0;i

dtemp = i;

SafeArrayPutElement(psax,&i,&dtemp); dtemp = dData[i];

SafeArrayPutElement(psay,&i,&dtemp); //更简单写法

//SafeArrayPutElement(psay,&i,dData+i); }

//开始画图

CSerieslineSeries = (CSeries)m_TeeChart.Series(0);