| |

Visual-Basic EinsteigerRe: MSChart, Y-Achsen-Skalierung --> AAARRGGH!! | |  | Autor: Plasma | Datum: 25.05.03 18:14 |
| Hallo Kraftmalz!
Erstmal vielen Dank dafür, dass Du Dir mein Problem nochmal angeschaut hast!
Mein Problem ist leider doch etwas anders; ich hatte es verkürzt dargestellt wegen des begrenzten Platzes im Forum (wollt' ja kein Roman schreiben).
Es sieht so aus:
ich habe 2 2D Graphen, die insgesamt 3 Kurven anzeigen: 2 Kurven in dem einen und die dritte Kurve für sich allein in dem zweiten Graphen.
Jede Kurve besitzt dabei eine eigene Y-Achse; in dem Graphen mit 2 Kurven wird dann eine Y1-Achse links und eine Y2-Achse rechts im Graphen angezeigt (wie bei MSChart üblich).
Das Problem der automatischen Y-Achsen-Skalierung des MS-Chart ist klar: immer zeigt er auch den 0-Punkt an.
Da der User aber die Datenquellen für die 3 Kurven selber auswählen darf, kommen u.U. sehr verschiedene Daten zusammen; sie können sehr groß sein (in für mich unbekannte Höhen) oder sehr gering sein (oder negativ, usw.).
Das hat zur Folge, dass ich die Daten zur Laufzeit überprüfen muss, wie sie sich verhalten.
Daher muss ich die Y-Achsen auch selber skalieren, oder besser gesagt: ich muss von den Y-Achsen immer nur ein Fenster anzeigen lassen (das mit 3999 - 4001 war nur ein mögliches Beispiel).
Und hier kommt nun mein Problem:
wenn MSChart selber skaliert, werden für die Y-Achsen immer schöne runde Zahlen angezeigt (User-freundlich).
Nun suche ich nach einer Methode, die Y-Achsen-Werte benutzerfreundlich zu wählen:
immerhin habe ich es geschafft, dass ein 'Daten-Fenster' angezeigt wird, mit üppigen Ober- und Unter-Grenzen, damit sich das 'Fenster' nicht bei jeder Datenänderung verschiebt; bei hohen Aktualisierungsraten von z.B. 100ms (vom User einstellbar) würden sich ja die Werte an der Y-Achse sonst ebenfalls mit 100ms ständig neu-berechnen (falls die Kurve steigt oder sinkt): Kurvenwerte von der Y-Achse abzulesen wäre dann unzumutbar.
Daher suche ich eine Methode, um die Y-Achsen-Fenster Anwenderfreundlich zu formatieren. Ich mach' das mal am besten durch ein paar Beispiele deutlich:
- Für Werte zwischen 48,33 und 156,41 sollte dann das Y-Achsen-Fenster zwischen zB 40 und 160 liegen, damit es komfortabel bleibt (gerundet auf 10er).
- Bei höheren Werten zB zwischen 2563,23 und 4005,01 könnte dann das Y-Achsen-Fenster zwischen 2500 und 4100 liegen (gerundet auf 100er).
- Bei wenig-schwankenden Werten, sollten dagegen die Nachkommastellen nicht einfach gerundet werden; liegen die Werte zwischen 4321,17 und 4321,22 , so könnte das Y-Achsen-Fenster zwischen zB 4321,10 und 4321,30 liegen (gerundet auf den ersten dezimal).
Wie gesagt; es sind hier nur Beispiele, aber ich hoffe die Problematik ist klar geworden...
Zum Teil habe ich (wie ich sagte) eine Zwischenlösung gefunden, aber sie ist nicht ideal und ausserdem leider recht rechenintensiv.
Ich kann aber nicht beurteilen, ob das ohne MSChart, sondern mit PixelSets wirklich besser werden würde...?
Nebenbei hat ja MSChart den smarten Vorteil, dass man relativ schnell die Darstellungsfarben ändern kann (was dem User zugute kommt)...
Danke nochmal. Ich hoffe ich habe Dich mit meiner langen Antwort nicht gelangweilt und hoffe von Dir nochmal ein Lebenszeichen zu hören
MfG,
Plasma |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|