Farbe und Legende für 3D-Oberfläche

Farbe und Legende für 3D-Oberfläche

Ich versuche, eine 3D-Oberfläche zu zeichnen pgfplots, und das habe ich bisher erreicht:

\usepgfplotslibrary{patchplots}
\begin{tikzpicture}
\begin{axis}[%
width=12cm,height=12cm,
xlabel={$J_1$},
ylabel={$J_2$},
zlabel={$J_3$},
legend style={at={(-0.2,0.14)},anchor=north west,draw=black,fill=white,legend cell align=left},
label style={font=\scriptsize}, ticklabel style={font=\scriptsize}
]

\addplot3[patch,patch type=triangle quadr,opacity = 0.2,
    shader=faceted interp]
coordinates {
  (349.9671,  349.9671,  195.8676)
  (195.8676,  349.9671,  349.9671)
  (349.9671,  195.8676,  349.9671)
  (226.6197,  330.3199,  226.6197)
  (226.6197,  226.6197,  330.3199)
  (330.3199,  226.6197,  226.6197)};
% \addlegendentry{Pareto Front};

\end{axis}
\end{tikzpicture}

Bildbeschreibung hier eingeben

Ich brauche es in einer einzigen Farbe (und das ist es nicht), ich kann keine Legende hinzufügen und ich möchte den Blickwinkel durch Drehen ändern. Irgendwelche Ratschläge? Danke.

Antwort1

  1. Sie können eine geeignete auswählen colormap. Beispielsweise colormap/graynach dem Laden der Farbkarten pgfplotslibrary.

  2. Sie haben view={<angle>}{<angle>}oderview/h=<angle> und einige andere Befehle, die die Blickwinkel beeinflussen. Bitte beachten Sie die Paketdokumentation (Abschnitt4.11.1 Konfiguration anzeigen).

  3. Es scheint eine Inkompatibilität zwischen \addlegendentryund zu gebenpatch type=triangle quadr zu geben . Laut einerKommentar vom Paketautordies scheint ein Fehler zu sein; er schlägt außerdem vor, area legend,fill=blackdie Handlung zu erweitern, um einen geeigneten Ersatz zu erhalten.

Der Code:

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{patchplots,colormaps}
\pgfplotsset{compat=1.9} 
\begin{document}

\begin{tikzpicture}
\begin{axis}[%
width=12cm,height=12cm,
xlabel={$J_1$},
ylabel={$J_2$},
zlabel={$J_3$},
legend style={
  at={(-0.2,0.14)},
  anchor=north west,
  draw=black,
  fill=white,
  legend cell align=left
  },
label style={font=\scriptsize},
ticklabel style={font=\scriptsize},
view={10}{10},
]

\addplot3[
  patch,
  patch type=triangle quadr,
  opacity = 0.5,
  shader=faceted interp,
  colormap/gray,
  area legend,fill=black
  ]
coordinates {
  (349.9671,  349.9671,  195.8676)
  (195.8676,  349.9671,  349.9671)
  (349.9671,  195.8676,  349.9671)
  (226.6197,  330.3199,  226.6197)
  (226.6197,  226.6197,  330.3199)
  (330.3199,  226.6197,  226.6197)};
  \addlegendentry{Pareto Front};
\end{axis}
\end{tikzpicture}

\end{document}

Die Ausgabe wie sie im Acrobat Reader angezeigt wird (einige Viewer (z. B. Okular) erzeugen möglicherweise ein falsches Ergebnis, da die kontinuierliche Schattierung durch kleine Rechtecke ersetzt wird)

Bildbeschreibung hier eingeben

verwandte Informationen