vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
MSChart, Y-Achsen-Skalierung --> AAARRGGH!!4.887Plasma20.05.03 12:08
Re: MSChart, Y-Achsen-Skalierung --> AAARRGGH!!4.084Kraftmalz24.05.03 18:02
Re: MSChart, Y-Achsen-Skalierung --> AAARRGGH!!4.522Plasma25.05.03 18:14

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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