#!/usr/bin/env instantfpc
{$mode objfpc}{$H+}
uses
Interfaces, Classes, TAChartLazarusPkg,
FPCanvas, FPImage, FPImgCanv,
TAGraph,
TASeries,
TADrawerFPCanvas in './tadrawerfpcanvas.pas',
TADrawerCanvas,
TADrawUtils,
math,
TSVDocument;
const
filename = '/home/rafael/recordings/2016_10_26/000/stimulus_control/000.timestamps';
var
Document : TTSVDocument;
StringList : TStringList;
Chart : TChart;
LineSerie : TLineSeries;
CanvasImage: TFPMemoryImage;
Canvas: TFPImageCanvas;
DrawerInterface: IChartDrawer;
data : array of Double;
i : integer;
error: integer = 0;
begin
Chart := TChart.Create(nil);
Chart.Font.Name:='/usr/share/fonts/truetype/freefont/FreeMono';
Chart.LeftAxis.Marks.LabelFont.Name := '/usr/share/fonts/truetype/freefont/FreeMono';
Chart.LeftAxis.Marks.LabelFont.Size := 12;
Chart.LeftAxis.Marks.LabelFont.Orientation := 0;
Chart.LeftAxis.Marks.Visible:=True;
Chart.LeftAxis.Grid.Style:=psClear;
Chart.LeftAxis.Title.Visible:=True;
Chart.LeftAxis.Title.Caption := 'Respostas';
Chart.LeftAxis.Title.LabelFont.Name := '/usr/share/fonts/truetype/freefont/FreeMono';
Chart.LeftAxis.Title.LabelFont.Size := 12;
Chart.LeftAxis.Title.LabelFont.Orientation := 900;
Chart.BottomAxis.Marks.Visible := false;
Chart.BottomAxis.Grid.Style := psClear;
Chart.BottomAxis.Title.Caption := 'Tempo';
Chart.BottomAxis.Title.Font.Name := '/usr/share/fonts/truetype/freefont/FreeMono';
Chart.BottomAxis.Title.Visible:=True;
Chart.Color := $FFFFFF;
Chart.BackColor := $FFFFFF;
Chart.Title.Visible := True;
Chart.Title.Text.Text := 'test';
Chart.Title.Font.Name := '/usr/share/fonts/truetype/freefont/FreeMono';
Chart.Title.Font.Size := 12;
Chart.Title.Font.Orientation := 0;
Chart.Width := 800;
Chart.Height:= 800;
Document := TTSVDocument.Create;
Document.LoadFromFile(Filename);
Document.SkipHeader := 5;
StringList := Document.Filter('Event', 'R', 'Time');
try
SetLength(data, StringList.Count);
for i := 0 to StringList.Count -1 do
Val(StringList[i], data[i], error);
LineSerie := TLineSeries.Create(Chart);
LineSerie.AddArray(data);
Chart.AddSeries(LineSerie);
CanvasImage := TFPMemoryImage.Create(Chart.Width, Chart.Height);
Canvas := TFPImageCanvas.Create(CanvasImage);
DrawerInterface := TFPCanvasDrawer.Create(Canvas);
DrawerInterface.DoGetFontOrientation := @CanvasGetFontOrientationFunc;
Chart.Draw(DrawerInterface, Rect(0, 0, Chart.Width, Chart.Height));
CanvasImage.SaveToFile('test.png');
finally
Canvas.Free;
CanvasImage.Free;
StringList.Free;
Document.Free;
Chart.Free;
end;
end.