CHistogramChart

Classe pour le dessin d'histogrammes.

Description

Toutes les méthodes permettant de dessiner des histogrammes sont implémentées dans cette classe. Elles peuvent être utilisées pour définir la largeur des barres et pour configurer l'utilisation des séries de données. Les méthodes de remplissage en dégradé des barres de l'histogramme sont incluses, permettant de visualiser les données plus clairement.

ccanvas_histogramchart

Le code de la figure ci-dessus est fourni ci-dessous.

Déclaration

   class CHistogramChart : public CChartCanvas

Titre

   #include <Canvas\Charts\HistogramChart.mqh>

Hiérarchie d'héritage

  CCanvas

      CChartCanvas

          CHistogramChart

Méthodes de la classe

Méthode

Action

Gradient

Définit l'utilisation ou non du remplissage en dégradé des barres de l'histogramme.

BarGap

Définit la valeur de décalage de l'histogramme depuis l'origine.

BarMinSize

Définit la largeur minimum des barres de l'histogramme.

BarBorder

Définit le flag indiquant si les bordures de barres doivent être dessinées ou pas.

Create

Méthode virtuelle pour créer une ressource graphique.                                      

SeriesAdd

Ajoute une nouvelle série de données.

SeriesInsert

Insère des série de données sur le graphique.

SeriesUpdate

Met à jour des séries de données sur le graphique.

SeriesDelete

Supprime des séries de données du graphique.

ValueUpdate

Met à jour la valeur d'un élément des séries spécifiées.

DrawData

Méthode virtuelle permettant de dessiner un histogramme pour les séries spécifiées.

DrawBar

Dessine une barre d'histogramme sous la forme d'un rectangle plein.

GradientBrush

Crée une brosse pour le remplissage en dégradé.                                    

Méthodes héritées de la classe 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éthodes héritées de la classe 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

Exemple

//+------------------------------------------------------------------+
//|                                         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 "Exemple d'utilisation d'un histogramme"
//---
#include <Canvas\Charts\HistogramChart.mqh>
//+------------------------------------------------------------------+
//| entrées                                                          |
//+------------------------------------------------------------------+
input bool Accumulative=true;
//+------------------------------------------------------------------+
//| Fonction de démarrage du script                                  |
//+------------------------------------------------------------------+
int OnStart(void)
  {
   int k=100;
   double arr[10];
//--- crée le graphique
   CHistogramChart chart;
   if(!chart.CreateBitmapLabel("SampleHistogramChart",10,10,600,450))
     {
      Print("Erreur de création de l'histogramme : ",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));
     }
//--- joue avec les valeurs
   while(!IsStopped())
     {
      int i=rand()%5;
      int j=rand()%10;
      k=rand()%3000-1000;
      chart.ValueUpdate(i,j,k);
      Sleep(200);
     }
//--- fin
   chart.Destroy();
   return(0);
  }