CPieChart

Classe pour dessiner des diagrammes circulaires.

ccanvas_piechart

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

Description

Les méthodes de cette classe sont conçues pour une utilisation de A à Z des diagrammes circulaires, de la création d'une ressource graphique à la création des étiquettes pour les segments.

Déclaration

   class CPieChart : public CChartCanvas

Titre

   #include <Canvas\Charts\PieChart.mqh>

Hiérarchie d'héritage

  CCanvas

      CChartCanvas

          CPieChart

Méthodes de la classe

Méthode

Action

Create

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

SeriesSet

Définit une série de valeurs devant être affichées sur le diagramme circulaire.

ValueAdd

Ajoute une nouvelle valeur à un diagramme circulaire (ajout à la fin).

ValueInsert

Insère une nouvelle valeur à un diagramme circulaire (à la position spécifiée).

ValueUpdate

Met à jour la valeur d'un diagramme circulaire (à la position spécifiée).

ValueDelete

Supprime une valeur d'un diagramme circulaire (à la position spécifiée).

DrawChart

Méthode virtuelle dessinant un diagramme circulaire et tous ses éléments.

DrawPie

Dessine le segment d'un diagramme circulaire correspondant à une valeur spécifiée.                                                        

LabelMake

Génère l'étiquette d'un segment basée sur sa valeur et sur son étiquette d'origine.

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

//+------------------------------------------------------------------+
//|                                               PieChartSample.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 diagramme circulaire"
//---
#include <Canvas\Charts\PieChart.mqh>
//+------------------------------------------------------------------+
//| entrйes                                                          |
//+------------------------------------------------------------------+
input int      Width=600;
input int      Height=450;
//+------------------------------------------------------------------+
//| Fonction de dйmarrage du script                                  |
//+------------------------------------------------------------------+
int OnStart(void)
  {
//--- vйrifications
   if(Width<=0 || Height<=0)
     {
     Print("Trop simple.");
      return(-1);
     }
//--- crйe le graphique
   CPieChart pie_chart;
   if(!pie_chart.CreateBitmapLabel("PieChart",10,10,Width,Height))
     {
     Print("Erreur de crйation du diagramme circulaire : ",GetLastError());
      return(-1);
     }
   pie_chart.ShowPercent();
//--- dessin
   for(uint i=0;i<30;i++)
     {
      pie_chart.ValueAdd(100*(i+1),"Item "+IntegerToString(i));
      Sleep(10);
     }
   Sleep(2000);
//--- dйsactive la lйgende
   pie_chart.LegendAlignment(ALIGNMENT_LEFT);
   Sleep(2000);
//--- dйsactive la lйgende
   pie_chart.LegendAlignment(ALIGNMENT_RIGHT);
   Sleep(2000);
//--- dйsactive la lйgende
   pie_chart.LegendAlignment(ALIGNMENT_TOP);
   Sleep(2000);
//--- dйsactive la lйgende
   pie_chart.ShowLegend(false);
   Sleep(2000);
//--- dйsactive les pourcentages
   pie_chart.ShowPercent(false);
   Sleep(2000);
//--- dйsactive lees descripteurs
   pie_chart.ShowDescriptors(false);
   Sleep(2000);
//--- active tout
   pie_chart.ShowLegend();
   pie_chart.ShowValue();
   pie_chart.ShowDescriptors();
   Sleep(2000);
//--- ou de cette faзon
   pie_chart.ShowFlags(FLAG_SHOW_LEGEND|FLAG_SHOW_DESCRIPTORS|FLAG_SHOW_PERCENT);
   uint total=pie_chart.DataTotal();
//--- joue avec les valeurs
   for(uint i=0;i<total && !IsStopped();i++)
     {
      pie_chart.ValueUpdate(i,100*(rand()%10+1));
      Sleep(1000);
     }
//--- joue avec les couleurs
   for(uint i=0;i<total && !IsStopped();i++)
     {
      pie_chart.ColorUpdate(i%total,RandomRGB());
      Sleep(1000);
     }
//--- rotation
   while(!IsStopped())
     {
      pie_chart.DataOffset(pie_chart.DataOffset()+1);
      Sleep(200);
     }
//--- fin
   pie_chart.Destroy();
   return(0);
  }
//+------------------------------------------------------------------+
//| Couleur RGB alйatoire                                            |
//+------------------------------------------------------------------+
uint RandomRGB(void)
  {
   return(XRGB(rand()%255,rand()%255,rand()%255));
  }