CLineChart
CLineChart
绘制曲线的类。
描述
该类中包含的方法专为图表上的曲线而设计。它具有填充绘制曲线限定内的区域的能力。

下面提供图形上方的代码。
声明
class CLineChart : public CChartCanvas主题
#include <Canvas\Charts\LineChart.mqh>继承体系
CLineChart
类函数
| 方法 | 动作 |
|---|---|
| Filled | 设置填充数据序列定义曲线下的区域的标识。 |
| Create | 创建图形资源。 |
| SeriesAdd | 添加新的数据序列。 |
| SeriesInsert | 插入数据序列到图表。 |
| SeriesUpdate | 更新图表上的数据序列。 |
| SeriesDelete | 从图表删除数据序列。 |
| ValueUpdate | 更新指定序列的指定值。 |
| DrawChart | 绘制曲线及其所有元素的虚拟方法。 |
| DrawData | 为指定序列绘制曲线的虚拟方法。 |
| CalcArea | 计算数据序列定义曲线下的区域。 |
方法继承自类 CChartCanvas
: ColorBackground, ColorBackground, ColorBorder, ColorBorder, ColorText, ColorText, ColorGrid, ColorGrid, MaxData, MaxData, MaxDescrLen, MaxDescrLen, AllowedShowFlags, ShowFlags, ShowFlags, IsShowLegend, IsShowScaleLeft, IsShowScaleRight, IsShowScaleTop, IsShowScaleBottom, IsShowGrid, IsShowDescriptors, IsShowPercent, ShowLegend, ShowScaleLeft, ShowScaleRight, ShowScaleTop, ShowScaleBottom, ShowGrid, ShowDescriptors, ShowValue, ShowPercent, LegendAlignment, Accumulative, VScaleMin, VScaleMin, VScaleMax, VScaleMax, NumGrid, NumGrid, VScaleParams, DataOffset, DataOffset, DataTotal, DescriptorUpdate, ColorUpdate
示例
//+------------------------------------------------------------------+
//| LineChartSample.mq5 |
//| Copyright 2009-2017, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009-2017, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property description "Example of using line chart"
//---
#include <Canvas\Charts\LineChart.mqh>
//+------------------------------------------------------------------+
//| 输入 |
//+------------------------------------------------------------------+
input bool Accumulative=false;
//+------------------------------------------------------------------+
//| 脚本程序起始函数 |
//+------------------------------------------------------------------+
int OnStart(void)
{
int k=100;
double arr[10];
//--- 创建图表
CLineChart chart;
//--- 创建图表
if(!chart.CreateBitmapLabel("SampleHistogrammChart",10,10,600,450))
{
Print("Error creating line chart: ",GetLastError());
return(-1);
}
if(Accumulative)
{
chart.Accumulative();
chart.VScaleParams(20*k*10,-10*k*10,20);
}
else
chart.VScaleParams(20*k,-10*k,15);
chart.ShowScaleTop(false);
chart.ShowScaleRight(false);
chart.ShowLegend();
chart.Filled();
for(int j=0;j<5;j++)
{
for(int i=0;i<10;i++)
{
k=-k;
if(k>0)
arr[i]=k*(i+10-j);
else
arr[i]=k*(i+10-j)/2;
}
chart.SeriesAdd(arr,"Item"+IntegerToString(j));
}
//--- 使用值
while(!IsStopped())
{
int i=rand()%5;
int j=rand()%10;
k=rand()%3000-1000;
chart.ValueUpdate(i,j,k);
Sleep(200);
}
//--- 完成
chart.Destroy();
return(0);
}