Automatische Skalierung für 90% aller Werte

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Automatische Skalierung für 90% aller Werte
Hallo,
ich bastel mir grad mit JPGraph schöne Diagramme für die statistischen Daten, die mein Server jetzt alle Nase lang aufzeichnet. Funktioniert prinzipiell schon ganz gut, aber die automatische Skalierung der Y-Achse nimmt natürlich das globale Maximum und richtet sich danach. Nun sehen die meisten Aktivitätsdiagramme allerdings so aus, dass den ganzen Tag über nichts spannendes passiert, wenn morgens das Backup läuft allerdings alles wie wild ausschlägt. Statt 50 kB/s auf der Platte sind es in einer Spitze auch mal 1600, statt Netzwerk-Traffic nahe null ergibt das eine Spitze von 700 kB/s, usw. (Siehe Anhang.) Das bringt einem so natürlich nicht unbedingt mehr Übersicht, und so hätte ich gerne eine Option, die ein “Maximum” findet, das größer als 90% (oder ein beliebiger anderer Anteil) aller Messwerte ist.

Mein intuitiver Ansatz dazu wäre jetzt sowas wie: Suche einen zufälligen Wert und erhöhe/erniedrige ihn so lange, bis die Bedingung erfüllt ist. Die erste Optimierung wäre vllt, mit dem Durchschnitt als Startwert anzufangen. Oder dem Maximum, je nach Ausprägung der Werte. Aber für jeden neuen Versuch mal eben alle Messwerte zählen? Das stell ich mir ziemlich ineffizient vor. Gibt’s da nicht was besseres?

Attachment:
stat-net.png: https://fsi.cs.fau.de/unb-attachments/post_26968/stat-net.png


ich kenn vom rrdtool eine Option, dass die Y-Achse logarithmisch skaliert werden soll. Find ich zwar auch nicht prickelnd, weils ganz schön verzerrt, aber vllt besser als gar nix


Das hab ich auch mal versucht in dem JPGraph. Dann passen zwar alle Messwerte ganz gut in den Bereich rein, aber erkennen kann man darauf eigentlich nichts mehr. Es geht mir ja nicht so sehr darum, da jetzt exakte Messwerte abzulesen, sondern eher zu sehen, wie ist es überhaupt verlaufen, wo sind welche Besonderheiten.


aus den howtos:
multiple y achsen http://www.aditus.nu/jpgraph/howto04.php
combined graphs http://www.aditus.nu/jpgraph/howto01.php


Ähm sorry nein, das ist was anderes.


?


Du hast mir was präsentiert, um 2 unabhängige Y-Achsen oder 2 unabhängige Diagramme zu zeichnen.

Ich will ein Verfahren, mit dem ich einen Grenzwert bestimmen kann, der größer als 90% aller Messwerte ist, um alle Messwerte (einer einzigen Reihe) erkennbar in einem Diagramm mit einer Y-Achse darzustellen.


Du hast doch quasi den Algorithmus selbst beschrieben:

Sortieren der Messwerte
die 10% der größten Werte herausnehmen
von den restlichen 90% das Maximum bestimmen

zweckmäßigerweise hast Du Dir noch gemerkt, welcher Messwert an welcher Position steht. Aber dazu kannst Du ja ein Tupel (x,y) nehmen und nur nach y sortieren.


Aah, sortieren, das war das was noch gefehlt hat, um das Verfahren effizient durchzuführen! :slight_smile: Dann muss ich doch glatt mal anfangen, das umzusetzen… Ich hatte es zuvor etwas anders beschrieben, indem man für jeden neuen Probewert alle Daten durchgehen müsste, um zu zählen, ob denn schon 90% zutreffen… Das ist geringfügig aufwändiger… :wink:

An welcher Stelle der Wert steht, ist mir völlig egal, wichtig ist, dass ich eine Skalierung für das Diagramm finde, bei der die Extremwerte nicht berücksichtigt werden.


Ha, wunderbar, funktioniert perfekt! :smiley:


:slight_smile: