CPieChart

円グラフをプロットするためのクラス

ccanvas_piechart

上の図のコ—ドはにあります。

説明

このクラスに含まれるメソッドは、グラフィックリソースの作成からラベルやセグメントのデザインまで、本格的な円グラフの操作のために設計されています。

宣言

  class CPieChart : public CChartCanvas

タイトル

  #include <Canvas\Charts\PieChart.mqh>

継承階層

  CCanvas

      CChartCanvas

          CPieChart

クラスメソッド

メソッド

アクション

Create

グラフィカルリソースを作成する仮想メソッド。  

SeriesSet

円グラフに表示される系列の値を設定します。

ValueAdd

円グラフの最後に新しい値を追加します。

ValueInsert

円グラフの指定された位置に新しい値を挿入します。

ValueUpdate

円グラフの指定された位置での値を更新します。

ValueDelete

円グラフの指定された位置での値を削除します。

DrawChart

円グラフとそのすべての要素を描画するための仮想メソッド。

DrawPie

指定された値に対応する円グラフのセグメントを描画します。                                                        

LabelMake

セグメントラベルをその値と元のラベルに基づいて生成します。

クラスから継承されたメソッド 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

 

//+------------------------------------------------------------------+
//|                                               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 "Example of using pie chart"
//---
#include <Canvas\Charts\PieChart.mqh>
//+------------------------------------------------------------------+
//| 入力                                                              |
//+------------------------------------------------------------------+
input int      Width=600;
input int      Height=450;
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
int OnStart(void)
 {
//--- 確認
  if(Width<=0 || Height<=0)
    {
    Print("Too simple.");
    return(-1);
    }
//--- チャートを作成する
  CPieChart pie_chart;
  if(!pie_chart.CreateBitmapLabel("PieChart",10,10,Width,Height))
    {
    Print("Error creating pie chart: ",GetLastError());
    return(-1);
    }
  pie_chart.ShowPercent();
//--- 描画する
  for(uint i=0;i<30;i++)
    {
     pie_chart.ValueAdd(100*(i+1),"Item "+IntegerToString(i));
    Sleep(10);
    }
  Sleep(2000);
//--- 凡例を無効にする
  pie_chart.LegendAlignment(ALIGNMENT_LEFT);
  Sleep(2000);
//--- 凡例を無効にする
  pie_chart.LegendAlignment(ALIGNMENT_RIGHT);
  Sleep(2000);
//--- 凡例を無効にする
  pie_chart.LegendAlignment(ALIGNMENT_TOP);
  Sleep(2000);
//--- 凡例を無効にする
  pie_chart.ShowLegend(false);
  Sleep(2000);
//--- パーセンテージを無効にする
  pie_chart.ShowPercent(false);
  Sleep(2000);
//--- 記述子を無効にする
  pie_chart.ShowDescriptors(false);
  Sleep(2000);
//--- 全てを有効にする
  pie_chart.ShowLegend();
  pie_chart.ShowValue();
  pie_chart.ShowDescriptors();
  Sleep(2000);
//--- またはこのように
  pie_chart.ShowFlags(FLAG_SHOW_LEGEND|FLAG_SHOW_DESCRIPTORS|FLAG_SHOW_PERCENT);
  uint total=pie_chart.DataTotal();
//--- 値と遊ぶ
  for(uint i=0;i<total && !IsStopped();i++)
    {
     pie_chart.ValueUpdate(i,100*(rand()%10+1));
    Sleep(1000);
    }
//--- 色と遊ぶ
  for(uint i=0;i<total && !IsStopped();i++)
    {
     pie_chart.ColorUpdate(i%total,RandomRGB());
    Sleep(1000);
    }
//--- 回転する
  while(!IsStopped())
    {
     pie_chart.DataOffset(pie_chart.DataOffset()+1);
    Sleep(200);
    }
//--- 終わる
  pie_chart.Destroy();
  return(0);
 }
//+------------------------------------------------------------------+
//| ランダムなRGB色                                                      |
//+------------------------------------------------------------------+
uint RandomRGB(void)
 {
  return(XRGB(rand()%255,rand()%255,rand()%255));
 }