The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.191

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2020 Frank Seitz

LICENSE

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