
Я пытаюсь построить различные виды 3D-кривой, но я хотел бы определить оси и стиль графиков с самого начала; я не смог этого сделать. Вот код и то, что я получаю:
\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[
declare function ={
ex(\x)=cos(\x)*sin(2*\x);
ye(\x)=cos(\x)*cos(2*\x);
ze(\x)=sin(\x);
}
]
\pgfplotsset{
every axis post/.append style={
trig format plots=rad,
scale=0.7
}
every axis plot/.append style={
blue,
domain=0:2*pi,
samples=120
}
}
\begin{axis}
\addplot3 ({ex(x)},{ye(x)},{ze(x)});
\end{axis}
\begin{axis}[xshift=7cm, view/h=120,view/v=90]
\addplot3 ({ex(x)},{ye(x)},{ze(x)});
\end{axis}
\end{tikzpicture}
\end{document}
Мне нужно следующее (получено путем записи всех вышеперечисленных опций в каждую axis
среду и каждый \addplot
макрос):
Цвет кривой принимается, но не остальные опции. Я не знаю, правильно ли я использую синтаксис для ключей; это явно правильный синтаксис, потому что я могу скомпилировать без ошибок, но мне явно чего-то не хватает, чтобы получить то, что я хочу, и я не могу найти это в руководстве. Заранее спасибо!
решение1
Вы забыли запятую между двумя pgfplotsset
частями ( every axis post
часть и every axis plot
часть). Также вам нужно установить пустой параметр []
после \addplot3
, чтобы вызвать общую настройку.
МВЭ:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}[
declare function ={
ex(\x)=cos(\x)*sin(2*\x);
ye(\x)=cos(\x)*cos(2*\x);
ze(\x)=sin(\x);
}
]
\pgfplotsset{
every axis post/.append style={
trig format plots=rad,
scale=0.7
},
every axis plot/.append style={
purple,
domain=0:2*pi,
samples=120
}
}
\begin{axis}
\addplot3[] ({ex(x)},{ye(x)},{ze(x)});
\end{axis}
\begin{axis}[xshift=7cm, view/h=120,view/v=90]
\addplot3[] ({ex(x)},{ye(x)},{ze(x)});
\end{axis}
\end{tikzpicture}
\end{document}
Результат: