Achsenbeschriftung links/rechts bei SVG

Begonnen von Dr. Boris Neubert, 04 April 2017, 18:01:46

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo,

aus einem SVG-Plot mit mehreren ist nicht erkennbar, ob eine Kurve die linke oder die rechte Ordinate nutzt, wenn man die geplotteten Werte nicht extra auch noch an die jeweilige Ordinate schreiben möchte (siehe  Bild). Ich rege an, dass die Legende zu den Kurven, die die linke (rechte) Ordinate nutzen, an den linken (rechten) Rand linksbündig (rechtsbündig) geschrieben werden.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

Das wuerde alle betreffen: sehen Andere irgendwelche Probleme damit?

Wernieman

Wenn ich es richtig verstehe, sollen also die Überschriften für die Kurven zur Linken Achse links dargestellt werden und die für rechts rechts?

Also in dem Beispiel würde die Beschriftung in Blau links erscheinen?

Finde ich so gut, würde aber bestimmt bei einigen Ihre schon fertige GUI etwas ... durcheinanderbringen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

justme1968

links und rechts reicht nicht. es könne ja auch mehr als zwei achsen sichtbar sein.

wie wäre es neben den zeilen der legende die laufende nummer der achse nach zu stellen?

vielleicht durch einen platzhalter den man im label text verwenden kann und der automatisch ersetzt wird.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Dr. Boris Neubert

Zitat von: justme1968 am 04 April 2017, 19:42:15
links und rechts reicht nicht. es könne ja auch mehr als zwei achsen sichtbar sein.

Wie macht man denn das und wie sieht das aus? Ist das ein undokumentiertes Feature?

Unabhängig davon sind die Fälle mit einer oder zwei Achsen vermutlich die häufigsten und sollten automatisch erschlagen werden.

Zitat
wie wäre es neben den zeilen der legende die laufende nummer der achse nach zu stellen?

vielleicht durch einen platzhalter den man im label text verwenden kann und der automatisch ersetzt wird.

Für mich ist das nicht intuitiv und geht zudem einfacher "von Hand" direkt in der Achsenbeschriftung, so wie ich es gemacht habe in meinem Beispiel mit der blauen Kurve für Ozon.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

justme1968

#5
dokumentiert in der commander ist das nrAxis attribut mit dem du angibst wie viele achsen jeweils links und rechts vom plot dargestellt werden sollen. alle yX angaben im pilotfie gibt es bis X=8.

zwei unschönheiten gibt es aktuell noch:
- plots mit unterschiedlicher anzahl sichtbarer achsen haben eine unterschiedliche breite da
  sich die konfigurierte breite auf die breite inklusive der achsen bezieht.
- im ploteditor sind die yX einträge nicht neu anlegebar und nicht editierbar.
  sie gehen aber auch nicht verloren sobald man sie ein mal von hand eingetragen hat.
  zum editieren es gab schon einen patchvorschlag, zum neu anlegen noch nicht.
 
aussehen tut es dann z.b. so wie im anhang.

ganz automatisch (zumindest ohne attribut das dieses feature explizit einschaltet) geht es nicht da es mit dem captionLeft attribut koordiniert werden muss.

wie wäre folgendes:
- das captionLeft attribut wird ersetz durch ein captionPos attribut
- dieses kann die werte right, left und auto haben
- right ist der default
- left ersetzt captionLeft
- auto verteilt die label zeilen passend nach links und rechts
- das captionLeft wird automatisch passend in das captionPos attribut umgewandelt
- captionPos kann global und pro svg gesetzt werden
- captionLeft entfällt demnächst


 
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Dr. Boris Neubert

Das finde ich gut!

Idealerweise werden die Labels dann auch noch in Spalten gemäß der Anzahl der Achsen links und rechts angeordnet. In Deinem Speedtest-Beispiel sähe die Legende so aus:


|  upload                                                  download   ping  |  |


In der Commandref fehlen bei SVG die Backlinks zu nrAxis und plotsize als weitere globale Attribute, die am individuellen SVG-Device überschrieben werden können.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

justme1968

#7
anbei ein vorschlag wie das mit einem captionPos attribut aussehen könnte.

was noch fehlt:
- soll bei auto und mehr als einer achse links und rechts noch die achsen nummer hinter dem jeweiligen label erscheinen? oder reicht das sortieren nach links und rechts?
- automatisches umstellen von captionLeft
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Frank_Huber

Also ich fände es gut die Beschriftung links bzw rechts zu haben.
vielleicht auch als Attribut oder als Setting neben "Y-Axis" Einstellung pro Linie?

rudolfkoenig

Ich finde den Vorschlag gut: soll ich ihn schon einchecken, oder auf die anderen Sachen noch warten?

justme1968

noch nicht einchecken. das zusammenspiel mit dem 'alten' captionLeft muss auf jeden fall noch rein.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Frank_Huber

Zitat von: justme1968 am 04 April 2017, 21:40:58
dokumentiert in der commander ist das nrAxis attribut mit dem du angibst wie viele achsen jeweils links und rechts vom plot dargestellt werden sollen. alle yX angaben im pilotfie gibt es bis X=8.

Danke! Wieder was gelernt. :-)
Hätte es als Attribut aber auch nie in FHEMWEB vermutet...

/Frank

justme1968

ich habe den patch oben noch mal erweitert:
- ein gesetztes captionLeft attribut wird als fallback berücksichtigt
- der code für die achsen ist jetzt an einer stelle zusammengefasst
- doku ergänzt
- beliebige anzahl und verteilung von achsen getestet

noch zu klären:
- soll das alte captionLeft attribut automatisch durch captionPos ersetzt und gelöscht werden?
  wenn nein -> der patch wäre von meiner seite fertig

- soll captionPos auch global zu setzen sein
  wenn nein -> der patch wäre von meiner seite fertig

@Frank_Huber:
ZitatAlso ich fände es gut die Beschriftung links bzw rechts zu haben.
vielleicht auch als Attribut oder als Setting neben "Y-Axis" Einstellung pro Linie?
ich weiss nicht was du damit meinst. du kannst dich im plot editor angeben ob eine kurve zur rechten oder linken achse gehört.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Dr. Boris Neubert

Super vielen Dank!

Zitat von: justme1968 am 06 April 2017, 16:06:36
- soll das alte captionLeft attribut automatisch durch captionPos ersetzt und gelöscht werden?
  wenn nein -> der patch wäre von meiner seite fertig

Würde Konfigurationen nur ändern, wenn es unbedingt erforderlich ist. Ansonsten captionLeft als DEPRECATED kennzeichnen und mit dem nächsten Release sterben lassen.

Was ist denn aus meinem Vorschlag zur Anordnung der Legendeneinträge analog zur Position der Achsen (mehrspaltig bei mehr Achsen pro Seite) und meinen Hinweis zur fehlenden Doku von nrAxis und plotsize geworden?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

justme1968

sorry. hatte ich übersehen.

die anordnung der label nebeneinander schaue ich mir an. das könnte aber problematisch werden da die position dann von der breite abhängt und diese nicht einfach und zuverlässig zu bestimmen ist.

zur fehlenden doku der globalen attribute: ich habe gerade mal nachsehen (auch im code) und scheinbar lassen sich die beiden attribute in der aktuellen fhem version tatsächlich nicht mehr global setzen. ich bin mir aber sehr sicher das dies mal ging. vielleicht weiss rudi hier mehr.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968