pgfplots: shader=interp funktioniert nicht Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Konrad

pgfplots: shader=interp funktioniert nicht

Beitrag von Konrad »

Werte LaTeX-Experten!

Ich möchte einen 3D-Surface-Plot mit dem Paket pgfplots erstellen. Leider funktioniert hierbei die Option shader=interp nicht. Ich benutze folgendes Minimalbeispiel:
\documentclass{scrartcl}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[view={0}{90}]
\addplot3[surf,shader=interp] coordinates {(0,0,0) (0,1,1) (1,0,0.5) (1,1,0.25)};
\end{axis}
\end{tikzpicture}

\end{document}
Beim Kompilieren kommt folgender Fehler:

! Package pgfplots Error: CRITICAL: shader=interp: got unsupported pdf shading
type '0'. This may corrupt your pdf!.

See the pgfplots package documentation for explanation.
Type H <return> for immediate help.
...

l.10 \end{axis}

Weiß jemand, ob und wie man dies beheben kann?

Ich wäre sehr dankbar!

Gast

Beitrag von Gast »

AFAIK brauchst du eine Funktion, die die Überfläche beschreibt. Du hast hingegen gar keine Oberfläche, sondern nur eine einzelne Linie im Raum, wobei die angegebene Blickrichtung auch noch dafür sorgt, dass es nach einer Linie in der Ebene aussieht.

Konrad

Beitrag von Konrad »

Nein, damit kann es nicht zusammenhängen. Im pgfplots-Handbuch auf Seite 143 ist ebenso ein Beispiel, das surf, shader=interp und coordinates nutzt. Wenn ich dieses in mein Dokument hineinkopiere, kommt derselbe Fehler beim Kompilieren.

Mache ich beim Kompilieren einen Fehler? Meine LaTeX-Version lautet This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016)

Gast

Beitrag von Gast »

Sag ich doch! So sollte es dann beispielsweise funktionieren:
\documentclass{scrartcl}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}% für manche shader eigentlich min. compat=1.13
\begin{document}

\begin{tikzpicture}
\begin{axis}[view={0}{90}]
\addplot3[surf,shader=interp] 
coordinates {
  (0,0,0) (0,1,1) 

  (1,0,0.5) (1,1,0.25)
};
\end{axis}
\end{tikzpicture}

\end{document}
Beachte die Änderung bei coordinates, die zu einer Oberfläche statt einer Linie führen.

Konrad

Beitrag von Konrad »

Jetzt habe ich es verstanden: Man muss die Daten in Form einer Matrix eingeben, wie im Handbuch auf Seite 124 beschrieben. Leider habe ich nach dem Satz »The \addplot3 coordinates method works like its two–dimensional variant« aufgehört weiterzulesen. Danke für die Antwort.

Antworten