PGFPlots 1.11 erschienen

Christian Feuersänger hat die Version 1.11 von PGFPlots veröffentlicht. Bereits vor einer Woche, doch bei diesem besonderen Paket ist mir diese Neuigkeit wichtig, daher teile ich sie gern noch hier mit. Schließlich gibt es noch einen Ausblick zu berichten.

Parametric Breather Pseudospherical SurfaceHervorheben möchte ich zwei der neuen Features. Man kann jetzt in trigonometrischen Funktionen Argumente in Radiant angeben, statt nur in Grad. Damit entfällt die Umrechnung durch deg() in Grad, wie vorher mit sin(deg(x)) nötig, wenn x nicht in Grad gegeben war. Entsprechend vereinfacht sich die Eingabe komplexer trigonometrischer Ausdrücke. Man braucht nur einmalig trig format plots=rad als Option anzugeben.

Spherical HarmonicsIm Code zum Bild oben ist es “vorher und nacher” zu sehen, in der Antwort von Christian auf TeXwelt auf die Frage, ob man bei pgfplots von Grad auf Radiant umstellen kann mit der Ankündigung des neuen Features. Oder gleich als Anwendung in einem Minimalbeispiel – hier habe ich auf diese Weise die linksstehende Abbildung (spherical harmonics, für Quantenmechanik) geplottet, die Henri in PSTricks angefragt hatte:

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{trig format plots=rad, compat=1.11}
\usepgfplotslibrary{colormaps}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[colormap/violet, hide axis]
    \addplot3[
      surf,
      domain     = 0:pi,
      domain y   = 0:2*pi,
      samples    = 50,
      samples y  = 70,
      z buffer   = sort
   
]
    ( {sin(x)*cos(y)*(sqrt(3/(4*pi))*sin(x)*cos(y))^2},
      {sin(x)*sin(y)*(sqrt(3/(4*pi))*sin(x)*cos(y))^2},
      {cos(x)*(sqrt(3/(4*pi))*sin(x)*cos(y))^2} );
  \end{axis}
\end{tikzpicture}
\end{document
}

NormalverteilungWeiterhin wird das Hinzufügen von zusätzlichen Beschriftungen einfacher. Bislang konnte man sich mit axis cs: auf das Koordinatensystem beziehen, um Linien, Pfeile oder Beschriftungen einzuzeichnen. Das sah beispielsweise so aus, wie in diesem Ausschnitt von Elkes gefüllter Fläche unter einer Normalverteilung:

\draw [dotted] (axis cs:2.698,-4) -- (axis cs:2.698,4.5);
\node at (axis cs:0,1.4) [anchor=east, rotate=90] {50\,\%};

Mit der neuen Version vereinfacht sich das zu

\draw [dotted] (2.698,-4) -- (2.698,4.5);
\node at (0,1.4) [anchor=east, rotate=90] {50\,\%};

Also sparsamer zu schreiben und leichter lesbar, gerade wenn man es (wie beim Elkes Plot) öfter einsetzt.

Der kleine Versions-Sprung bringt weitere Modellpflege, es wurden einige aufgefundene Bugs behoben. So kaum merkliche, dass ich bei intensiver Nutzung nur einen davon bemerkt hatte, der nun auch gleich behoben wurde (mit der units library trat unter Umständen zuviel Weißraum auf – bounding box zu groß). Details zu den Bugfixes kann man in der README-Datei nachlesen.

Zum Ausblick: in einem Kommentar zu Drehtransformation mit pgfplots kündigte Christian an, dass er sich in der Entwicklung von PGFPlots gerade auf Skalierbarkeit und Geschwindigkeit konzentriert, motiviert durch die 3d-Oberflächen-Plots auf TeXwelt. Er hat auch schon einen Prototypen fertig, der das dortige Beispiel mit doppelter Geschwindigkeit übersetzt. Es wird dann ein Lua backend verwendet. Darauf freue ich mich sehr, denn ich erstelle regelmäßig komplexe Plots und übersetze sie vielfach, bis Blickwinkel, Samplingrate, Färbung und mehr Optionen eine bestmögliche Darstellung liefern.

Man kann mit seinem Paketmanager seine PGFPlots-Installation updaten, ansonsten kriegt man die neueste Version auch auf SourceForge und auf CTAN.

Tagged:

Ein Kommentar zu “PGFPlots 1.11 erschienen

  1. Nikola 25. Februar 2015 at 07:56 Reply

    I enjoyed and leernad reading very good interview. My (La)TeX knowledge is pretty basic. But since joining this forum, I’m picking some very useful nuggets from you helpful bunch. I hope Jake wouldn’t mind if I ask question on pfg/tikz in future! Thank you everyone here and at texcommunity for your help. I think I’m going to stick around this forum for a long time. :)

Hinterlasse einen Kommentar zu Nikola Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>