CPieChart

Classe per la compilazione di grafici a torta.

ccanvas_piechart

Il codice della figura precedente è fornito sotto .

Descrizione

I metodi inclusi in questa classe sono progettati per operare su scala completa con grafici a torta, dalla creazione di una risorsa grafica alla progettazione di etichette, a segmenti.

Dichiarazione

   class CPieChart : public CChartCanvas

Titolo

   #include <Canvas\Charts\PieChart.mqh>

 

Gerarchia ereditaria

  CCanvas

      CChartCanvas

          CPieChart

Metodi di classe

Metodo

Azione

Create

Metodo virtuale che crea una risorsa grafica.  

SeriesSet

Imposta una serie di valori che saranno mostrati sul grafico a torta.

ValueAdd

Aggiunge un nuovo valore al grafico a torta (alla fine).

ValueInsert

Inserisce un nuovo valore nel grafico a torta (alla posizione specificata).

ValueUpdate

Aggiorna il valore sul grafico a torta (nella posizione specificata).

ValueDelete

Rimuove un valore dal grafico a torta (nella posizione specificata).

DrawChart

Metodo virtuale che disegna un grafico a torta e tutti i suoi elementi.

DrawPie

Disegna un segmento del grafico a torta, che corrisponde a un valore specificato.                                                        

LabelMake

Genera un'etichetta di segmento in base al suo valore e all'etichetta originale.

Metodi ereditati da CCanvas

Create, 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

Metodi ereditati da CChartCanvas

Create, 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

 

Esempio

//+------------------------------------------------------------------+
//|                                               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 "Esempio di utilizzo del grafico a torta"
//---
#include <Canvas\Charts\PieChart.mqh>
//+------------------------------------------------------------------+
//| inputs                                                           |
//+------------------------------------------------------------------+
input int      Width=600;
input int      Height=450;
//+------------------------------------------------------------------+
//| Funzione di avvio del programma script.                          |
//+------------------------------------------------------------------+
int OnStart(void)
  {
//--- check
   if(Width<=0 || Height<=0)
     {
     Print("Troppo semplice.");
      return(-1);
     }
//--- crea chart
   CPieChart pie_chart;
   if(!pie_chart.CreateBitmapLabel("PieChart",10,10,Width,Height))
     {
     Print("Errore nella creazione del grafico a torta: ",GetLastError());
      return(-1);
     }
   pie_chart.ShowPercent();
//--- disegna
   for(uint i=0;i<30;i++)
     {
      pie_chart.ValueAdd(100*(i+1),"Item "+IntegerToString(i));
      Sleep(10);
     }
   Sleep(2000);
//--- disabilita legenda
   pie_chart.LegendAlignment(ALIGNMENT_LEFT);
   Sleep(2000);
//--- disabilita legenda
   pie_chart.LegendAlignment(ALIGNMENT_RIGHT);
   Sleep(2000);
//--- disabilita legenda
   pie_chart.LegendAlignment(ALIGNMENT_TOP);
   Sleep(2000);
//--- disabilita legenda
   pie_chart.ShowLegend(false);
   Sleep(2000);
//--- disabilita percentuale
   pie_chart.ShowPercent(false);
   Sleep(2000);
//--- disabilita descrittori
   pie_chart.ShowDescriptors(false);
   Sleep(2000);
//--- abilita tutto
   pie_chart.ShowLegend();
   pie_chart.ShowValue();
   pie_chart.ShowDescriptors();
   Sleep(2000);
//--- o come questo
   pie_chart.ShowFlags(FLAG_SHOW_LEGEND|FLAG_SHOW_DESCRIPTORS|FLAG_SHOW_PERCENT);
   uint total=pie_chart.DataTotal();
//--- gioca con i valori
   for(uint i=0;i<total && !IsStopped();i++)
     {
      pie_chart.ValueUpdate(i,100*(rand()%10+1));
      Sleep(1000);
     }
//--- gioca con i colori
   for(uint i=0;i<total && !IsStopped();i++)
     {
      pie_chart.ColorUpdate(i%total,RandomRGB());
      Sleep(1000);
     }
//--- ruota
   while(!IsStopped())
     {
      pie_chart.DataOffset(pie_chart.DataOffset()+1);
      Sleep(200);
     }
//--- fine
   pie_chart.Destroy();
   return(0);
  }
//+------------------------------------------------------------------+
//| Colori RGB casuali                                               |
//+------------------------------------------------------------------+
uint RandomRGB(void)
  {
   return(XRGB(rand()%255,rand()%255,rand()%255));
  }