FHEM Forum

FHEM => Frontends => Thema gestartet von: Harald am 02 Dezember 2013, 17:45:50

Titel: [gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: Harald am 02 Dezember 2013, 17:45:50
Hallo zusammen,

ich möchte eine Y2- Achsenteilung 0-360 einstellen. Es wird aber automatisch eine Teilung von 0-400 gewählt. Was muss ich tun, damit das funktioniert? Die Y1-Achse ist, wie ich möchte, 0-120 eingestellt.

Kann mir jemand einen Tipp geben?

Viele Grüße

Harald
Titel: Antw:wie Achsenteilungen im Plot festlegen
Beitrag von: justme1968 am 02 Dezember 2013, 18:14:42
set y2range [0:360]

gruss
  andre
Titel: Antw:wie Achsenteilungen im Plot festlegen
Beitrag von: Dr. Boris Neubert am 02 Dezember 2013, 18:27:01
Now that you mention it...

Die Achsen werden meiner Erfahrung nach NICHT immer so geteilt, wie man es vorgibt. Bei [0:100] geht es schon mal von 0 bis 120 und erst [0:99] liefert eine Achse, die von 0 bis 100 beschriftet ist. Ich habe sogar schon in den Programmkode geguckt, bis mir schwindelig wurde, aber ich habe nicht herausgefunden, warum das passiert. Muß wohl mal mit dem Debugger ran...

Oder ist das nur bei mir so?

Viele Grüße
Boris
Titel: Antw:wie Achsenteilungen im Plot festlegen
Beitrag von: justme1968 am 02 Dezember 2013, 18:31:37
das pech/problem hatte ich noch nicht.

in den fällen in denen ich den wertebereich vorgebe (egal ob mit oder ohne ticks) passt es auch. egal ob ober und unter grenze oder nur eine von beiden.

eventuell muss man in den fällen in denen es nicht passt zusätzlich zum range noch die ticks genau vorgeben?

gruss
  andre
Titel: Antw:wie Achsenteilungen im Plot festlegen
Beitrag von: Harald am 02 Dezember 2013, 18:36:42
Hallo zusammen,

ich habe auch oft Tricks mit z.B. -1:98 anwenden müssen um eine Teilung von -20:100 hinzubekommen. Diesmal bei 0:360 haben alle diesbez. Versuche nicht gefruchtet. Immer wird eine Teilung von 0-400 erzeugt. Deshalb ja meine Frage. Da ist irgend eine Automatik drin, deren Regeln ich nicht verstehe und kann sie deshalb nur sehr schwer austricksen.

Gebe ich Ticks an, wird gar keine Teilung, außer den Ticks angezeigt. Die Ticks stehen aber an der gewählten Stelle der falsch geteilten, nicht angezeigten Teilung.

Viele Grüße

Harald
Titel: Antw:wie Achsenteilungen im Plot festlegen
Beitrag von: justme1968 am 02 Dezember 2013, 18:53:15
stimmt. ich habe scheinbar zufällig bis jetzt immer wertebereiche verwendet die sich mit den gerundeten decken.

seltsamerweise erzeugen daten die den wertebereich 0-360 abdecken aber tatsächlich eine achse die von 0-360 geht wenn man range nicht vorgibt.

gruss
  andre
Titel: Antw:wie Achsenteilungen im Plot festlegen
Beitrag von: rudolfkoenig am 02 Dezember 2013, 19:03:51
yrange ersetzt nur das dynamisch gefundene min/max.

Damit versucht das Programm "schoene" Grenzen und Schritte zu finden (siehe Kommentar "compute a nice step" in 98_SVG.pm), d.h. die Schritte muessen "Rund" sein (1,2,5,10,usw), und es sollten sich nicht mehr als 7 Schritte (== gezeichnete ticks) zwischen min und max befinden.

0-360 ist nach diesem Verfahren erst dann darstellbar, wenn 60 in @limit aufgenommen wird.
Titel: Antw:wie Achsenteilungen im Plot festlegen
Beitrag von: Harald am 02 Dezember 2013, 20:08:00
Besten Dank für die Aufklärung. Jetzt blicke ich ein wenig besser durch und verstehe die Funktionen besser.

Viele Grüße

Harald
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: Dr. Boris Neubert am 02 Dezember 2013, 22:15:33
Hallo Rudi,

lassen wir die Ticks mal einen Moment beiseite.

Ich habe einen Plot, bei dem ich die linke y-Achse auf [0:100] und die rechte auf [-5:5] forcieren möchte. Angezeigt wird aber links 0 bis 120 und rechts -6 bis 6.

Nun zu den Ticks. Links käme man mit 6 Ticks à 20 hin. Da läuft also was schief. Rechts bräuchte man tatsächlich 11 Ticks, wenn man die 0 treffen muß.

Ist hier zu viel Eigenleben im Spiel? M.E. sollte der Plot das zeigen, was ich vorgebe. Gehorsam vor Schönheit.

Viele Grüße
Boris

gesendet von meinem WePad

Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: rudolfkoenig am 02 Dezember 2013, 23:09:13
[0:100] wurde falsch gerundet, habs korrigiert und eingecheckt.

Bei einem gesetzten yrange wird ab sofort das angegebene Wert genommen, und nicht mehr auf step gerundet. Damit sollte auch -5:5 gefixed sein.
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: Harald am 03 Dezember 2013, 10:30:06
Hallo Rudolf,

vielen Dank für die Änderung. Habe soeben meine Diagramme umgestellt. Jetzt kann man die gewünschten Achsenparameter eingeben und sie werden auch so verwendet. Man braucht nicht zigmal zu tricksen, damit die Achsen wie gewünscht aussehen.

In diesem Zusammenhang bin ich auf einen Patch (http://forum.fhem.de/index.php/topic,13617.msg84648.html#msg84648) gestoßen, den justme1968 mal gemacht hat. Damit wird eine 3. Y-Achse angezeigt, wenn diese in *.gplot definiert ist. Ich habe das ausprobiert und es klappt prima.

Wäre es vielleicht zu überlegen, diesen Patch in die 98_SVG.pm zu integrieren?

Nochmals besten Dank, viele Grüße und angenehmen Tag noch

Harald
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: betateilchen am 03 Dezember 2013, 19:06:09
Zitat von: rudolfkoenig am 02 Dezember 2013, 23:09:13
[0:100] wurde falsch gerundet, habs korrigiert und eingecheckt.

Bei einem gesetzten yrange wird ab sofort das angegebene Wert genommen, und nicht mehr auf step gerundet. Damit sollte auch -5:5 gefixed sein.

Musste das sein???

Die heutige Änderung an 98_SVG macht auf einen Schlag ALLE meine definierten Plots erstmal UNBRAUCHBAR! Man hat ja auch am kommenden Wochenende nix anderes zu tun, als ca. 60 plotfiles zu überarbeiten *kotz*

(http://up.picr.de/16646936lc.jpg)

mann mann mann...

Es war wohl mal wieder Zeit, die fhem-User mit der flachen Hand ins Gesicht zu schlagen, oder?


Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: rudolfkoenig am 03 Dezember 2013, 19:41:09
*staun*
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: Rohan am 03 Dezember 2013, 19:47:16
Zitat von: betateilchen am 03 Dezember 2013, 19:06:09... *kotz*

Dann tu es.

Zitat
... img ...

Wen interessiert das?

Zitat
Es war wohl mal wieder Zeit, die fhem-User mit der flachen Hand ins Gesicht zu schlagen, oder?

Mir wurde nicht ins Gesicht geschlagen. Sprich bitte nur für dich selbst! Danke.

Gruß
Thomas

P.S. Papiertaschentuch und Mentholdrops reichend  ;D

Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: Dr. Boris Neubert am 03 Dezember 2013, 20:31:55
Zitat von: rudolfkoenig am 02 Dezember 2013, 23:09:13
[0:100] wurde falsch gerundet, habs korrigiert und eingecheckt.

Bei einem gesetzten yrange wird ab sofort das angegebene Wert genommen, und nicht mehr auf step gerundet. Damit sollte auch -5:5 gefixed sein.

Danke Rudi,

es funktioniert auch bei mir wie vom Erfinder gedacht.

Viele Grüße
Boris
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: betateilchen am 03 Dezember 2013, 21:34:47
Sorry, ich habe aus meiner Verärgerung heraus ziemlich überreagiert. Ich entschuldige mich hiermit in aller Form für meinen Ton vorhin.

Ich versuche, den Sachverhalt nochmal sachlich zu beschreiben.

Meine yranges haben bisher völlig problemlos funktioniert, die rechte y-Achse war immer von 0-100 beschriftet.

Der gelbe Bereich ist die Zeit zwischen Sonnenauf- und Sonnenuntergang, zu Beginn (Sonnenaufgang) wird ein Wert 100 generiert, der sich an der rechten y-Achse orientiert. Am Ende (Sonnenuntergang) wird der Wert wieder auf 0 gesetzt und ebenfalls wieder anhand der rechten y-Achse dargestellt.

(http://up.picr.de/16648988kd.jpg)

Dies funktioniert nun nach den Änderungen an der 98_SVG  aber nicht mehr. (Beispiel in meinem vorherigen Post - der Effekt tritt bei allen meinen Plots in ähnlicher Form auf)

Nach einem Downgrade der 98_SVG ist alles wieder korrekt - bei unveränderten Plot-Dateien.
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: Rohan am 03 Dezember 2013, 21:49:05
Hallo betateilchen,

ich bin dagegen froh darüber, dass dieses "Problem" nicht mehr existiert, denn (ok, nur 5 Plots) kurz danach hatte ich das, was ich wollte.

Und jetzt weiter und mit etwas mehr Distanz, Danke.

Gruß
Thomas
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: rudolfkoenig am 03 Dezember 2013, 21:59:00
Zitatdie rechte y-Achse war immer von 0-100 beschriftet.


Das klingt nach Fehler in der Berechnung der maxima.
Kannst Du einen kleinen Datensatz und eine Beispielhafte plot-definition zeigen?
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: betateilchen am 03 Dezember 2013, 22:50:59
Zitat von: rudolfkoenig am 03 Dezember 2013, 21:59:00Das klingt nach Fehler in der Berechnung der maxima.

Die y-ranges (nur) der rechten y-Achse sind von mir fix vorgegeben, da muss eigentlich gar nichts berechnet werden.
Die y-ranges der linken Achse werden automatisch ermittelt und sehen für mich erstmal korrekt aus.

Diese Vorgehensweise stammt bei mir noch aus "vor-SVG-Zeiten" als die automatische Berechnung mich seinerzeit völlig verzweifeln liess, weil es nie so aussah wie ich mir das vorgestellt hatte. Daraufhin hatte ich mich dazu entschlossen, die y-ranges in der jeweiligen gplot Datei festzulegen, was dazu führte, das ich endlich die Darstellung wunschgemäß erhielt.
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: betateilchen am 08 Dezember 2013, 18:18:41
Manchmal fehlt an der Achsenbeschriftung der oberste Wert:

(http://up.picr.de/16695669dv.png)

Eigentlich müsste da noch 21.0 stehen.

Die Skalierung erfolgt in diesem Beispiel automatisch, ein y-range ist nicht vorgegeben.




Edit:

Der Verhalten scheint abhängig davon zu sein, wieviele Unterteilungen auf der Achse vorhanden sein sollen.
Ein paar Minuten später war (zufällig?) alles korrekt.

(http://up.picr.de/16696209ew.png)

Die tatsächlich zugrundeliegende Logik dieses Effekts dahinter habe ich aber noch nicht festgestellt.
Titel: Antw:[gelöst] wie Achsenteilungen im Plot festlegen
Beitrag von: meldelinie am 10 Dezember 2013, 01:16:42
Zitat von: rudolfkoenig am 02 Dezember 2013, 23:09:13
[0:100] wurde falsch gerundet, habs korrigiert und eingecheckt.

Bei einem gesetzten yrange wird ab sofort das angegebene Wert genommen, und nicht mehr auf step gerundet. Damit sollte auch -5:5 gefixed sein.

Super - meine Plots sehen jetzt endlich so aus wie yrange es vorgibt :-)