CHistogramChart

绘制直方图的类。

描述

在这个类中实施使用绘制直方图的全部方法。它们可以用于设置列宽和配置数据序列。包括使用逐渐填充直方图的方法,使数据更清晰的可视化。

下面提供图形上方的代码。

声明

   class CHistogramChart : public CChartCanvas

主题

   #include <Canvas\Charts\HistogramChart.mqh>
继承体系   CCanvas       CChartCanvas           CHistogramChart

类函数

方法 动作
Gradient 设置显示是否使用逐渐填充直方图列的标识。
BarGap 设置自原点的直方图偏移值。
BarMinSize 设置直方图的最小列宽。
BarBorder 设置需要为每个列绘制边框的标识。
Create 创建图形资源的虚拟方法。                                      
SeriesAdd 添加新的数据序列。
SeriesInsert 插入数据序列到图表。
SeriesUpdate 更新图表上的数据序列。
SeriesDelete 从图表删除数据序列。
ValueUpdate 更新指定序列的元素值。
DrawData 为指定序列绘制直方图的虚拟方法。
DrawBar 将直方图列绘制为填充矩形。
GradientBrush 为逐渐填充创建笔刷。                                    
方法继承自类 CCanvas CreateBitmap, CreateBitmap, CreateBitmapLabel, CreateBitmapLabel, Attach, Attach, Destroy, ChartObjectName, ResourceName, Width, Height, Update, Resize, Erase, PixelGet, PixelSet, LineVertical, LineHorizontal, Line, Polyline, Polygon, Rectangle, Triangle, Circle, Ellipse, Arc, Arc, Arc, Pie, Pie, FillRectangle, FillTriangle, FillPolygon, FillCircle, FillEllipse, Fill, Fill, PixelSetAA, LineAA, PolylineAA, PolygonAA, TriangleAA, CircleAA, EllipseAA, LineWu, PolylineWu, PolygonWu, TriangleWu, CircleWu, EllipseWu, LineThickVertical, LineThickHorizontal, LineThick, PolylineThick, PolygonThick, PolylineSmooth, PolygonSmooth, FontSet, FontNameSet, FontSizeSet, FontFlagsSet, FontAngleSet, FontGet, FontNameGet, FontSizeGet, FontFlagsGet, FontAngleGet, TextOut, TextWidth, TextHeight, TextSize, GetDefaultColor, TransparentLevelSet, LoadFromFile, LineStyleGet, LineStyleSet
方法继承自类 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

示例

//+------------------------------------------------------------------+

//|                                         HistogramChartSample.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 histogram"

//---

#include <Canvas\Charts\HistogramChart.mqh>

//+------------------------------------------------------------------+

//| 输入                                                              |

//+------------------------------------------------------------------+

input bool Accumulative=true;

//+------------------------------------------------------------------+

//| 脚本程序起始函数                                                   |

//+------------------------------------------------------------------+

int OnStart(void)

  {

   int k=100;

   double arr[10];

//--- 创建图表

   CHistogramChart chart;

   if(!chart.CreateBitmapLabel("SampleHistogramChart",10,10,600,450))

     {

      Print("Error creating histogram chart: ",GetLastError());

      return(-1);

     }

   if(Accumulative)

     {

      chart.Accumulative();

      chart.VScaleParams(20*k*10,-10*k*10,20);

     }

   else

      chart.VScaleParams(20*k,-10*k,20);

   chart.ShowValue(true);

   chart.ShowScaleTop(false);

   chart.ShowScaleBottom(false);

   chart.ShowScaleRight(false);

   chart.ShowLegend();

   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);

  }