CHistogramChart

Clase para construir histogramas.

Descripción

En esta clase se han implementado todos los métodos de trabajo con construcción de histogramas de columnas. Con su ayuda se establece la anchura de las columnas, se configura el trabajo con las series de datos. Se han incluido los métodos de trabajo con coloreado en gradiente de las columnas del histograma, lo que permite representar la imagen de los datos de forma más visual.

ccanvas_histogramchart

El código de la figura mostrada más arriba se muestra abajo.

Declaración

   class CHistogramChart : public CChartCanvas

Encabezamiento

   #include <Canvas\Charts\HistogramChart.mqh>

Jerarquía de herencia

  CCanvas

      CChartCanvas

          CHistogramChart

Métodos de clase

Método

Acción

Gradient

Establece la bandera que indica si se va a aplicar el coloreado en gradiente de las columnas del histograma.

BarGap

Establece el valor del margen del histograma partiendo del comienzo de las coordenadas.

BarMinSize

Establece la anchura mínima de las columnas del histograma.

BarBorder

Establece la bandera que indica la necesidad de dibujar el límite para cada columna.

Create

Método virtual que crea un recurso gráfico.                                      

SeriesAdd

Añade una nueva serie de datos.

SeriesInsert

Inserta una serie de datos en el gráfico.

SeriesUpdate

Actualiza una serie de datos en el gráfico.

SeriesDelete

Elimina una serie de datos en el gráfico.

ValueUpdate

Actualiza el valor de un elemento en la serie indicada.

DrawData

Método virtual que dibuja un histograma para la serie indicada.

DrawBar

Dibuja una columna del histograma en forma de rectángulo coloreado.

GradientBrush

Crea un pincel para el coloreado en gradiente.                                    

Métodos heredados de la clase 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

Métodos heredados de la clase 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

Ejemplo

//+------------------------------------------------------------------+
//|                                         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>
//+------------------------------------------------------------------+
//| inputs                                                           |
//+------------------------------------------------------------------+
input bool Accumulative=true;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
int OnStart(void)
  {
   int k=100;
   double arr[10];
//--- create chart
   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));
     }
//--- play with values
   while(!IsStopped())
     {
      int i=rand()%5;
      int j=rand()%10;
      k=rand()%3000-1000;
      chart.ValueUpdate(i,j,k);
      Sleep(200);
     }
//--- finish
   chart.Destroy();
   return(0);
  }