CLineChart

Eğri çizimi için tasarlanmıştır.

Açıklama

Sınıf içinde yer alan yöntemler çizelge üzerinde eğrilerle çalışmak için geliştirilmiştir. Çizilen eğriyle sınırlanan alana dolgu yapabilme özelliğiyle ön plana çıkar.

ccanvas_linechart

Yukarıdaki şekli oluşturmak için kullanılan kod aşağıda paylaşılmıştır.

Bildirim

   class CLineChart : public CChartCanvas

Başlık

   #include <Canvas\Charts\LineChart.mqh>

 

Kalıtım hiyerarşisi

  CCanvas

      CChartCanvas

          CLineChart

Sınıf yöntemleri

Yöntem

Eylem

Filled

Eğriyle sınırlanan alan için dolgu oluşturma bayrağını ayarlar.

Create

Bir grafiksel kaynak oluşturur.                                      

SeriesAdd

Yeni veri serisi ekler.

SeriesInsert

Çizelgeye veri serileri ekler.

SeriesUpdate

Çizelgedeki veri serilerini günceller.

SeriesDelete

Çizelgedeki veri serilerini siler.

ValueUpdate

Belirtilen seride belirtilen elemanın değerini günceller.

DrawChart

Tüm bileşenleriyle birlikte bir eğri çizmek için tasarlanmış sanal yöntem.

DrawData

Belli bir veri serisinin eğrisini çizmek için tasarlanmış sanal yöntem.

CalcArea

Veri setine göre çizilen eğrinin altında kalan alanı hesaplar.

CCanvas sınıfından türetilen yöntemler

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

CChartCanvas sınıfından türetilen yöntemler

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

 

Örnek

//+------------------------------------------------------------------+
//|                                              LineChartSample.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 "Çizgi grafik kullanım örneği"
//---
#include <Canvas\Charts\LineChart.mqh>
//+------------------------------------------------------------------+
//| inputs                                                           |
//+------------------------------------------------------------------+
input bool Accumulative=false;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
int OnStart(void)
  {
   int k=100;
   double arr[10];
//--- çizelge oluştur
   CLineChart chart;
//--- çizelge oluştur
   if(!chart.CreateBitmapLabel("SampleHistogrammChart",10,10,600,450))
     {
      Print("Hata, çizgi grafiği oluşturulamadı: ",GetLastError());
      return(-1);
     }
   if(Accumulative)
     {
      chart.Accumulative();
      chart.VScaleParams(20*k*10,-10*k*10,20);
     }
   else
      chart.VScaleParams(20*k,-10*k,15);
   chart.ShowScaleTop(false);
   chart.ShowScaleRight(false);
   chart.ShowLegend();
   chart.Filled();
   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));
     }
//--- değerlerle oyna
   while(!IsStopped())
     {
      int i=rand()%5;
      int j=rand()%10;
      k=rand()%3000-1000;
      chart.ValueUpdate(i,j,k);
      Sleep(200);
     }
//--- bitir
   chart.Destroy();
   return(0);
  }