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