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}
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
Sie können eine geeignete auswählen
colormap
. Beispielsweisecolormap/gray
nach dem Laden der Farbkartenpgfplotslibrary
.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).Es scheint eine Inkompatibilität zwischen
\addlegendentry
und 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=black
die 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)