나는 다음을 사용하여 3D 표면을 플롯하려고 하는데 pgfplots
이것이 내가 지금까지 수행한 작업입니다.
\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}
단일 색상이 필요합니다(그렇지 않습니다). 범례를 추가할 수 없으며 회전하는 관점을 변경하고 싶습니다. 어떤 충고? 감사해요.
답변1
적절한 것을 선택할 수 있습니다
colormap
. 예를 들어colormap/gray
컬러맵을 로드한 후입니다pgfplotslibrary
.view={<angle>}{<angle>}
보기 각도에 영향을 미치는 또는view/h=<angle>
및 기타 명령이 있습니다 . 패키지 설명서를 참조하십시오(섹션4.11.1 보기 구성).\addlegendentry
와 사이에 호환성이 없는 것 같습니다 .patch type=triangle quadr
. 에 따르면패키지 작성자의 의견이건 버그인 것 같네요; 그는 또한area legend,fill=black
적절한 대체물을 얻기 위해 줄거리에 추가할 것을 제안합니다.
코드:
\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}
Acrobat Reader에 표시되는 출력(일부 뷰어(예: Okular)에서는 연속 음영을 작은 직사각형으로 대체하여 잘못된 결과를 생성할 수 있음)