NAME
Quiq::Axis::Numeric - Definition einer numerischen Achse
BASE CLASS
SYNOPSIS
$ax = Quiq::Axis::Numeric->new(
orientation => $str, # 'x', 'y'
font => $font,
length => $int,
min => $float,
max => $float,
logarithmic => $bool,
minTickGap => $int,
debug => $bool,
);
# Haupt-Ticks
@ticks = $ax->ticks;
DESCRIPTION
Ein Objekt der Klasse repräsentiert die Definition einer numerischen Achse eines XY-Plots. Die Achse kann eine X- oder eine Y-Achse sein. Die Klasse berechnet eine geeignete Einteilung der Achse in Ticks und Unter-Ticks unter Berücksichtigung der echten Breite/Höhe der Tick-Label. Die betreffenden Tick-Objekte werden von den Methoden $ax->ticks() und $ax->subTicks() geliefert.
Font-Klasse
Die Achseneinteilung kann für beliebige Fonts berechnet werden. Es wird lediglich vorausgesetzt, dass die Font-Klasse zwei Methoden zur Berechnung der Label-Breite und der Label-Höhe implementiert:
$n = $fnt->stringWidth($str);
$n = $fnt->stringHeight($str);
ATTRIBUTES
- orientation => 'x'|'y' (Default: 'x')
-
Orientierung der Achse: 'x' oder 'y'.
- font => $font (Default: keiner)
-
Font für die Tick-Label.
- length => $int (Default: keiner)
-
Länge der Achse.
- min => $float (Default: keiner)
-
Kleinster Wert auf der Achse.
- max => $float (Default: keiner)
-
Größter Wert auf der Achse.
- logarithmic => $bool (Default: 0)
-
Die Achse erhält eine logarithmische Einteilung (Basis 10).
- minTickGap => $int (Default: 5)
-
Mindestabstand zwischen zwei Ticks:
LABELlt--minTickGap-->LABEL
- debug => $bool (Default: 0)
-
Gib Information über die Tickberechnung auf STDERR aus.
METHODS
Konstruktor
new() - Instantiiere Achsen-Objekt
Synopsis
$ax = Quiq::Axis::Numeric->new(@keyVal);
Description
Instantiiere ein Achsen-Objekt auf Basis der Angaben @keyVal, berechne die beste Achseneinteilung, und liefere eine Referenz auf das Objekt zurück.
Objektmethoden
Siehe Basisklasse
Hilfsmethoden
firstTick() - Wert des ersten Tick
Synopsis
$val = $ax->firstTick($step);
Description
Liefere für Schrittweite $step den ersten Tick in Weltkoordinaten.
labelSize() - Tickgröße in Pixeln
Synopsis
$n = $ax->labelSize($val);
Description
Liefere für Wert $val den Platzbedarf des Label in Pixeln. FIXME: Wert in Label wandeln.
label() - Liefere Achsenlabel zu Wert
Synopsis
$label = $ax->label($val);
Description
Liefere das Achsenlabel für Wert $val. Das Label $label kann vom Wert $val verschieden sein, wenn die Darstellung logarithmisch ist.
VERSION
1.222
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.