NAME

Quiq::Gd::Component::Axis - Achse eines XY-Plot

BASE CLASS

Quiq::Gd::Component

SYNOPSIS

Numerische X-Achse definieren:

$ax = Quiq::Axis::Numeric->new(
    orientation => 'x',
    font => Quiq::Gd::Font->new('gdSmallFont'),
    length => 400,
    min => 0,
    max => 100,
);

Achsengrafik-Objekt erzeugen:

$g = Quiq::Gd::Component::Axis->new(axis=>$ax);

Vertikalen Platzbedarf der Achsengrafik ermitteln:

$height = $g->height;

Achsengrafik in Bild rendern:

$g->render($img,$x,$y);

DESCRIPTION

Ein Objekt der Klasse repräsentiert eine gezeichnete X- oder Y-Achse einschließlich Ticks und Labeln. Mit den Methoden $g->width() und $g->height() kann der Platzbedarf der Achse ermittelt werden, bevor sie konkret gezeichnet wird.

ATTRIBUTES

axis => $ax (Pflichtargument des Konstruktors)

Referenz auf die Achsen-Definition.

axisColor => $color (Default: '000000')

Farbe der Achse.

labelColor => $color (Default: Farbe der Achse)

Farbe der Schrift.

subTickColor => $color (Default: Farbe der Achse)

Farbe der Sub-Ticks.

tickColor => $color (Default: Farbe der Achse)

Farbe der Ticks.

tickDirection => $direction (Default: 'd' bei X-Achse, 'l' bei Y-Achse)

Richtung, die die Ticks der Achse sowie die Label gezeichnet werden. Mögliche Werte bei einer X-Achse: 'u' (up), 'd' (down). Mögliche Werte bei einer Y-Achse: 'l' (left), 'r' (right).

tickLabelGap => $n (Default: 1)

Abstand zwischen Tick und Label.

tickLength => $n (Default: 4)

Länge eines beschrifteten Tick.

EXAMPLES

Quelltext:

r1-gd-graphic-axis-example

X-Achse bei verschiedenen Fontgrößen

[Bild nur im Browser sichtbar]

Y-Achse bei verschiedenen Fontgrößen

[Bild nur im Browser sichtbar]

X-Achse mit logarithmischer Skala

[Bild nur im Browser sichtbar]

XY-Diagramm

[Bild nur im Browser sichtbar]

METHODS

Konstruktor

new() - Konstruktor

Synopsis

$g = $class->new(@keyVal);

Description

Instantiiere die Grafik einer X- oder Y-Achse mit den Darstellungseigenschaften @keyVal (s. Abschnitt ATTRIBUTES) und liefere eine Referenz auf das Objekt zurück.

Rendern

render() - Zeichne Achse

Synopsis

$g->render($img,$x,$y,@keyVal);
$class->render($img,$x,$y,@keyVal);

Description

Zeichne die Achse in Bild $img an Position ($x,$y). Die Postion ($x,$y) befindet sich am Anfang der jeweiligen Achsenlinie, also an der Position des Achsen-Minimums.

Y-Achse

max +
    |
    |
    |
    |($x,$y)
min x----------+   X-Achse
   min        max

Objektmethoden

length() - Länge der Achse

Synopsis

$length = $g->length;

Description

Liefere die Länge der Achse (= Achsenlinie) in Pixeln.

width() - Breite der Achsen-Grafik

Synopsis

$width = $g->width;

Description

Liefere die Gesamt-Breite der Achsen-Grafik in Pixeln. Im Falle einer X-Achse kann die Achsen-Grafik wegen überstehender Label-Texte links und rechts breiter sein als die Länge der Achse.

height() - Höhe der Achsen-Grafik

Synopsis

$height = $g->height;

Description

Liefere die Gesamt-Höhe der Achsen-Grafik in Pixeln. Im Falle einer Y-Achse kann die Achsen-Grafik wegen überstehender Label-Texte oben und unten höher sein als die Länge der Achse.

VERSION

1.206

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2022 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.