pgfplots - A TeX package to draw normal and/or logarithmic plots directly in TeX in two and three dimensions with a user-friendly interface and pgfplotstable - a TeX package to round and format numerical tables. Examples in manuals and/or on web site.
This is from PGFPlotsToDo:
add open-ended colorbars, preferably by adding triangles to the first resp. last tick labels in the colorbar.
See email of Stefan Pinnow of Dec 31, 2015
http://pyhogs.github.io/colormap-bathymetry.html
also needed: define the color as well optimally color=. (i.e deduce from context) per default
Here I will attach some emails of our discussions in German:
[Email from me on 02.08.2016]
[Dreiecke]
Ich vermute, dass es dieses Feature nicht in das kurzfristige Release schaffen wird, weil dieses Feature ja auch funktionieren sollte, wenn eine normale, kontinuierliche Colormap (colormap access=map) verwendet wird.
Bezogen auf das Beispiel im Abschnitt
"Simple attempt: the poor result of basic plotting"
gezeigte Beispiel auf
http://pyhogs.github.io/colormap-bathymetry.html
bedeutet dies, wenn eine kontinuierliche Colormap dargestellt wäre, dass es für die Werte >0 dann einen Farb-Sprung auf die entsprechende Farbe des Dreiecks geben müsste.
(Randnotiz: Was für mich noch nicht nachvollziehbar an der gezeigten Colormap ist, ist, dass ich erwartet hätte, dass jedes gezeigte Intervall eine eigene Farbe hat. Also 0-100 weiß, 100-200 ganz helles blau, 200-500 etwas helleres blau und genauso, dass nicht die beiden Intervalle 500-1000 und 500-1500 die gleiche Farbe haben. Hätte also etwas erwartet wie in dem Beispiel darunter. In dem Code konnte ich auf Anhieb nichts finden, was die beiden linke Colormap von der darüber unterscheiden sollte.)
Bisher hätte ich dafür die folgenden Lösungen:
(Die folgenden Ausführungen gehen immer davon aus, dass die Dreiecke separat an die Colorbar gezeichnet werden.)
1) mehrfaches Plotten
Zeichne zuerst alle Werte von point meta min bis point meta max und grenze entsprechend die Werte auf der Colorbar ein. Darüber könnten dann nochmals nur die Werte kleiner point meta min bzw. größer point meta min mit den entsprechenden Farben gezeichnet werden (indem alle anderen Werte auf NaN gesetzt werden). (Dadurch würden dann die Werte außerhalb min/max doppelt gezeichnet werden; einmal mit den Randwerten der Colorbar und dann nochmals mit den Dreieckfarben.)
2) Manipuliere Zahlen
Man könnte auch eine ganz normale Colormap inkl. der Farben für die Dreiecke kreieren. Dann könnte der "kontinuierliche Teil" der Colorbar durch entsprechendes Setzen von point meta min/max dargestellt werden. Durch Manipulieren der Datenwerte kleiner point meta min durch Setzen auf den tatsächlichen Minimalwert der Daten würde so ebenfalls ein Sprung erzeugt werden. Entsprechendes gilt natürlich für die Werte größer point meta max.
[Email from me on 03.10.2016]
Salim Bou hat bei einer Frage bzgl. der "Enddreiecke" an Colobars eine
Lösung vorgeschlagen, die ich sehr elegant finde.
http://tex.stackexchange.com/a/332352/95441
Was meinst du dazu? Klar müsste dies noch leicht modifiziert werden, damit
z.B. die "draw color" der eigentlichen Colorbar übernommen wird, aber sonst
schon super.
Könnte aber natürlich sein, dass nicht das Zeichnen der Dreiecke, sondern
das Anwenden der darin enthaltenen Farbe auf den eigentlichen Plot die
Herausforderung darstellt, richtig?
[Email from Christian on 09.10.2016]
danke fuer den Hinweis! Es sieht gut aus und kann als Basis fuer eine
entsprechende Implementierung dienen.
Du hast recht, dass die Farben auch in die colormap sollten (und somit
auch im Bild als solches auftauchen). Dazu mache ich mir aber spaeter
mal Gedanken [...]
Migrated from SourceForge https://sourceforge.net/p/pgfplots/feature-requests/52/ Author: mo-gul Timestamp: 2016-10-11 04:41:29.799000
As discussed via email, here the link again for a possible implementation of "end triangles" at colorbars. http://tex.stackexchange.com/a/332352/95441
This is from PGFPlotsToDo: add open-ended colorbars, preferably by adding triangles to the first resp. last tick labels in the colorbar. See email of Stefan Pinnow of Dec 31, 2015 http://pyhogs.github.io/colormap-bathymetry.html also needed: define the color as well optimally
color=.
(i.e deduce from context) per defaultHere I will attach some emails of our discussions in German:
[Email from me on 02.08.2016] [Dreiecke] Ich vermute, dass es dieses Feature nicht in das kurzfristige Release schaffen wird, weil dieses Feature ja auch funktionieren sollte, wenn eine normale, kontinuierliche Colormap (
colormap access=map
) verwendet wird.Bezogen auf das Beispiel im Abschnitt "Simple attempt: the poor result of basic plotting" gezeigte Beispiel auf http://pyhogs.github.io/colormap-bathymetry.html bedeutet dies, wenn eine kontinuierliche Colormap dargestellt wäre, dass es für die Werte >0 dann einen Farb-Sprung auf die entsprechende Farbe des Dreiecks geben müsste.
(Randnotiz: Was für mich noch nicht nachvollziehbar an der gezeigten Colormap ist, ist, dass ich erwartet hätte, dass jedes gezeigte Intervall eine eigene Farbe hat. Also 0-100 weiß, 100-200 ganz helles blau, 200-500 etwas helleres blau und genauso, dass nicht die beiden Intervalle 500-1000 und 500-1500 die gleiche Farbe haben. Hätte also etwas erwartet wie in dem Beispiel darunter. In dem Code konnte ich auf Anhieb nichts finden, was die beiden linke Colormap von der darüber unterscheiden sollte.)
Bisher hätte ich dafür die folgenden Lösungen: (Die folgenden Ausführungen gehen immer davon aus, dass die Dreiecke separat an die Colorbar gezeichnet werden.)
1) mehrfaches Plotten Zeichne zuerst alle Werte von
point meta min
bispoint meta max
und grenze entsprechend die Werte auf der Colorbar ein. Darüber könnten dann nochmals nur die Werte kleinerpoint meta min
bzw. größerpoint meta min
mit den entsprechenden Farben gezeichnet werden (indem alle anderen Werte aufNaN
gesetzt werden). (Dadurch würden dann die Werte außerhalb min/max doppelt gezeichnet werden; einmal mit den Randwerten der Colorbar und dann nochmals mit den Dreieckfarben.)2) Manipuliere Zahlen Man könnte auch eine ganz normale Colormap inkl. der Farben für die Dreiecke kreieren. Dann könnte der "kontinuierliche Teil" der Colorbar durch entsprechendes Setzen von
point meta min/max
dargestellt werden. Durch Manipulieren der Datenwerte kleinerpoint meta min
durch Setzen auf den tatsächlichen Minimalwert der Daten würde so ebenfalls ein Sprung erzeugt werden. Entsprechendes gilt natürlich für die Werte größerpoint meta max
.[Email from me on 03.10.2016] Salim Bou hat bei einer Frage bzgl. der "Enddreiecke" an Colobars eine Lösung vorgeschlagen, die ich sehr elegant finde. http://tex.stackexchange.com/a/332352/95441 Was meinst du dazu? Klar müsste dies noch leicht modifiziert werden, damit z.B. die "draw color" der eigentlichen Colorbar übernommen wird, aber sonst schon super.
Könnte aber natürlich sein, dass nicht das Zeichnen der Dreiecke, sondern das Anwenden der darin enthaltenen Farbe auf den eigentlichen Plot die Herausforderung darstellt, richtig?
[Email from Christian on 09.10.2016] danke fuer den Hinweis! Es sieht gut aus und kann als Basis fuer eine entsprechende Implementierung dienen.
Du hast recht, dass die Farben auch in die colormap sollten (und somit auch im Bild als solches auftauchen). Dazu mache ich mir aber spaeter mal Gedanken [...]