oslib/tst/graficos_2866/IrisSample.mq5

98 lines
7.2 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:15:18 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| IrisSample.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Graphics\Graphic.mqh>
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- Iris Setosa
double Setosa_x[];
double Setosa_y[];
//--- Iris Versicolour
double Versicolour_x[];
double Versicolour_y[];
//--- Iris Virginica
double Virginica_x[];
double Virginica_y[];
string f_name="iris.txt";
if(!ReadDataFromFile(f_name,Setosa_x,Setosa_y,
Versicolour_x,Versicolour_y,Virginica_x,Virginica_y))
Print("Failed reading data from ",f_name);
CGraphic graphic;
graphic.Create(0,"G",0,30,30,780,380);
//--- add Curve for Setosa
CCurve* Setosa=graphic.CurveAdd(Setosa_x,Setosa_y,CURVE_POINTS,"Setosa");
Setosa.PointsFill(true);
Setosa.PointsType(POINT_CIRCLE);
//--- add Curve for Versicolour
CCurve* Versicolour=graphic.CurveAdd(Versicolour_x,Versicolour_y,CURVE_POINTS,"Versicolour");
Versicolour.PointsFill(true);
Versicolour.PointsType(POINT_DIAMOND);
//--- add Curve for Virginica
CCurve* Virginica=graphic.CurveAdd(Virginica_x,Virginica_y,CURVE_POINTS,"Virginica");
Virginica.PointsFill(true);
Virginica.PointsType(POINT_TRIANGLE);
//--- plot all curves
graphic.CurvePlotAll();
graphic.Update();
}
//+------------------------------------------------------------------+
//| '8B05B 40==K5 87 ?>43>B>2;5==>3> D09;0 |
//+------------------------------------------------------------------+
bool ReadDataFromFile(string filename,double &x1[],double &y1[],
double &x2[],double &y2[],double &x3[],double &y3[],)
{
int file_handler=FileOpen(filename,FILE_READ|FILE_TXT|FILE_ANSI);
if(file_handler==INVALID_HANDLE)
{
Print("Failed to open file ",filename," error=",GetLastError());
return (false);
}
int counter=0;
while(!FileIsEnding(file_handler))
{
counter++;
string line=FileReadString(file_handler);
string words[];
StringSplit(line,',',words);
string iris=words[4];
if(iris=="Iris-setosa")
{
ArrayResize(x1,ArraySize(x1)+1,200);
ArrayResize(y1,ArraySize(y1)+1,200);
x1[ArraySize(x1)-1] = (double)words[0];
y1[ArraySize(y1)-1] = (double)words[1];
}
else
{
if(iris=="Iris-versicolor")
{
ArrayResize(x2,ArraySize(x2)+1,200);
ArrayResize(y2,ArraySize(y2)+1,200);
x2[ArraySize(x2)-1] = (double)words[0];
y2[ArraySize(y2)-1] = (double)words[1];
}
else
{
if(iris=="Iris-virginica")
{
ArrayResize(x3,ArraySize(x3)+1,200);
ArrayResize(y3,ArraySize(y3)+1,200);
x3[ArraySize(x3)-1] = (double)words[0];
y3[ArraySize(y3)-1] = (double)words[1];
}
}
}
}
//---
return (true);
}
//+------------------------------------------------------------------+