3D 표면의 색상 및 범례

3D 표면의 색상 및 범례

나는 다음을 사용하여 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

  1. 적절한 것을 선택할 수 있습니다 colormap. 예를 들어 colormap/gray컬러맵을 로드한 후입니다 pgfplotslibrary.

  2. view={<angle>}{<angle>}보기 각도에 영향을 미치는 또는 view/h=<angle>및 기타 명령이 있습니다 . 패키지 설명서를 참조하십시오(섹션4.11.1 보기 구성).

  3. \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)에서는 연속 음영을 작은 직사각형으로 대체하여 잘못된 결과를 생성할 수 있음)

여기에 이미지 설명을 입력하세요

관련 정보