Quiq::Gd::Component::Graph - Polyline-Graph
Quiq::Gd::Component
Das Objekt repräsentiert einen Graph entlang der Weltkoordinaten @x und @y. Per Default wird der Graph über der gesamten Fläche des Bildes gezeichnet. Durch die Angabe colors=>\@colors kann als dritte Dimension ein Farbwert entlang des Graphen gezeichnet werden. Punkte und Linien werden in diesen Farben gezeichnet, sofern per (pointColor) oder (lineColor) nichts anderes vorgegeben ist.
colors=>\@colors
pointColor
lineColor
Fett hervorgehobene Attribute sind Pflichtangaben beim Konstruktor-Aufruf.
Breite der Grafik in Pixeln.
Höhe der Grafik in Pixeln.
Array der X-Werte (Weltkoordinate).
Array der Y-Werte (Weltkoordinate).
Farben der Datenpunkte und Linien. Jeder Datenpunkt und jede Verbindungslinie hat eine eigene Farbe. Siehe Beispiel Graph mit verschiedenfarbigen Datenpunkten und Linien.
Farbe der Verbindungslinien. FIMXE: Verhältnis zu Attribut colors beschreiben.
Dicke der Verbindungsline in Pixeln. Wenn 0, wird keine Linie gezeichnet.
Anfang des X-Wertebereichs (Weltkoodinate).
Ende des X-Wertebereichs (Weltkoodinate).
Anfang des Y-Wertebereichs (Weltkoodinate).
Ende des Y-Wertebereichs (Weltkoodinate).
Maximaler Abstand zwischen zwei benachbarten Punkten in X-Richtung. Wird dieser Abstand überschritten, werden die Punkte nicht durch eine Linie verbunden.
Wie xMaxDelta, nur in Y-Richtung.
xMaxDelta
Farbe, in der alle Datenpunkte gezeichnet werden.
Größe des Punktes in Pixeln. Der Punkt wird gemäß pointStyle dargestellt. Der Wert sollte ungerade sein: 1, 3, 5, usw., damit die Darstellung mittig über dem Datenpunkt stattfindet.
pointStyle
Darstellung des Punktes: 'square', 'circle'.
Ist die Punktgröße > 1 (s. Attribut pointSize), erweitere den Plotbereich (Attribute xMin, xMax, yMin, yMax) derart, dass die Datenpunkte auch am Rand vollständig gezeichnet werden.
pointSize
xMin
xMax
yMin
yMax
Code:
require Quiq::Gd::Image; require Quiq::Gd::Component::Graph; my ($width,$height) = (500,100); $img = Quiq::Gd::Image->new($width,$height); $img->background('#ffffff'); my $g = Quiq::Gd::Component::Graph->new( width=>$width, height=>$height, x=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], y=>[0, 9, 7.5, 1, 1.9, 6, 4, 6.3, 0.5, 10], ); $g->render($img);
Im Browser:
[Nur im Browser sichtbar]
require Quiq::Gd::Image; require Quiq::Gd::Component::Graph; my ($width,$height) = (500,100); $img = Quiq::Gd::Image->new($width,$height); $img->background('#ffffff'); $img->border('#d0d0d0'); my $g = Quiq::Gd::Component::Graph->new( width=>$width, height=>$height, x=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], y=>[0, 9, 7.5, 1, 1.9, 6, 4, 6.3, 0.5, 10], pointColor=>'#ff0000', pointSize=>5, ); $g->render($img);
Wir setzen die Punktfarbe und die Punktgröße. Die Endpunkte sind abgeschnitten, da ein Teil von ihnen außerhalb des Bildes liegt.
require Quiq::Gd::Image; require Quiq::Gd::Component::Graph; my ($width,$height) = (504,104); $img = Quiq::Gd::Image->new($width,$height); $img->background('#ffffff'); $img->border('#d0d0d0'); my $g = Quiq::Gd::Component::Graph->new( width=>$width-4, height=>$height-4, x=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], y=>[0, 9, 7.5, 1, 1.9, 6, 4, 6.3, 0.5, 10], colors=>[ '#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff', '#00ffff', '#000000', '#808000', '#800080', '#008080', ], pointSize=>5, ); $g->render($img,2,2);
Wenn Eigenschaft colors definiert ist, werden die Punkte und Verbindungslinien in den angegebenen Farben dargestellt. Die Linie hat die Farbe des Anfangspunktes, der letzte Punkt hat keine Verbindungsline. Mit pointColor oder lineColor kann die Punkt- oder Linienfarbe auf eine bestimmte Farbe festgelegt werden (beide im Falle von colors fix einzustellen, macht wenig Sinn, denn dann hat colors keinen Effekt mehr). Die Endpunkte sind hier im Gegensatz zum vorigen Beispiel vollständig dargestellt, da wir das Bild um 4 Pixel breiter und höher gemacht haben als den Plotbereich.
colors
require Quiq::Gd::Image; require Quiq::Gd::Component::Graph; my ($width,$height) = (504,104); $img = Quiq::Gd::Image->new($width,$height); $img->background('#ffffff'); $img->border('#d0d0d0'); my $g = Quiq::Gd::Component::Graph->new( width=>$width, height=>$height, pointSize=>5, adaptPlotRegion=>1, x=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], y=>[0, 9, 7.5, 1, 1.9, 6, 4, 6.3, 0.5, 10], colors=>[ '#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff', '#00ffff', '#000000', '#808000', '#800080', '#008080', ], ); $g->render($img);
Mit adaptPlotRegion wird der Plotbereich so verkleinert, dass Punkte am Rand vollständig sichtbar sind.
adaptPlotRegion
$g = $class->new(@keyVal);
Instantiiere ein Grafik-Objekt mit den Eigenschaften @keyVal (s. Abschnitt ATTRIBUTES) und liefere eine Referenz auf das Objekt zurück.
$g->render($img); $g->render($img,$x,$y,@keyVal); $class->render($img,$x,$y,@keyVal);
Zeichne die Grafik in Bild $img an Position ($x,$y). Die Methode liefert keinen Wert zurück.
$xMin = $g->xMin;
Liefere das Minimum des X-Wertebereichs, das entweder beim Konstruktoraufruf gesetzt oder aus den Daten ermittelt wurde.
$xMax = $g->xMax;
Liefere das Maximum des X-Wertebereichs, das entweder beim Konstruktoraufruf gesetzt oder aus den Daten ermittelt wurde.
$yMin = $g->yMin;
Liefere das Minimum des Y-Wertebereichs, das entweder beim Konstruktoraufruf gesetzt oder aus den Daten ermittelt wurde.
$yMax = $g->yMax;
Liefere das Maximum des Y-Wertebereichs, das entweder beim Konstruktoraufruf gesetzt oder aus den Daten ermittelt wurde.
1.186
Frank Seitz, http://fseitz.de/
Copyright (C) 2020 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.