Цвет и легенда для 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) могут выдавать неверный результат, заменяя сплошную заливку небольшими прямоугольниками)

введите описание изображения здесь

Связанный контент