NAME

Quiq::Axis::Numeric - Definition einer numerischen Plot-Achse

BASE CLASS

Quiq::Axis

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

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2019 Frank Seitz

LICENSE

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