![Как построить параметрический график?](https://rvso.com/image/305915/%D0%9A%D0%B0%D0%BA%20%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9%20%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%3F.png)
Интересно, как сделать несколько параметров в pgfplot
? В коде я использовал x
и y
в качестве параметров для рисования сферы, с radiuse 1cm
. Когда я добавил x=2cm
, y=2cm
, z=2cm
, чтобы график выглядел лучше:
\documentclass{book}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=1,font=\tiny]
\begin{axis}[
axis x line=middle,
axis y line=middle,
axis z line=middle,
colormap/jet,
samples=40,
view={130}{30},
domain=-4:4,
y domain=-4:4,
restrict z to domain=-4:4,
grid=both,
xlabel={$x$},
ylabel={$y$},
zlabel={$z$},
xmax=2,
ymax=2,
zmax=2,
xmin=-2,
ymin=-2,
zmin=-2,
xtick={-10,...,10},
ytick={-10,...,10},
ztick={-10,...,10},
x=2cm,
y=2cm,
z=2cm,
every axis x label/.style={
at={(ticklabel* cs:1)},
anchor=west,},
every axis y label/.style={
at={(ticklabel* cs:1)},
anchor=south,},
every axis z label/.style={
at={(ticklabel* cs:1)},
anchor=west,}
]
\addplot3 [
samples=30,
domain=0:2*pi,
y domain=0:2*pi,
]
({cos(y*180/pi)*cos(x*180/pi)},
{cos(y*180/pi)*sin(x*180/pi)}, {sin(y*180/pi)});
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
К сожалению, когда я их добавил, view
функция перестала работать. Как исправить проблему и рисовать сетку только в XY
виде plain?
решение1
pgfplots
в руководстве есть такое предупреждение!
Для трехмерных осей pgfplots вычисляет направление вида из предоставленных единичных векторов. Направление вида требуется для включения функции z-буфера (т.е. для принятия решения о глубинах)
на странице 241, раздел 4.10 версии 1.11. Следовательно, когда вы меняете единицы измерения осей, это изменит угол обзора.
Если идея заключается в увеличении, можно использовать scale
ключ.
\documentclass{book}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=1,font=\tiny]
\begin{axis}[
%x post scale=2,
% y post scale=2,
% z post scale=2,
scale=2,
axis x line=middle,
axis y line=middle,
axis z line=middle,
colormap/jet,
samples=40,
view={130}{30},
domain=-4:4,
y domain=-4:4,
restrict z to domain=-4:4,
grid=both,
xlabel={$x$},
ylabel={$y$},
zlabel={$z$},
xmax=2,
ymax=2,
zmax=2,
xmin=-2,
ymin=-2,
zmin=-2,
xtick={-10,...,10},
ytick={-10,...,10},
ztick={-10,...,10},
every axis x label/.style={
at={(ticklabel* cs:1)},
anchor=west,},
every axis y label/.style={
at={(ticklabel* cs:1)},
anchor=south,},
every axis z label/.style={
at={(ticklabel* cs:1)},
anchor=west,}
]
\addplot3 [
samples=30,
domain=0:2*pi,
y domain=0:2*pi,
]
({cos(y*180/pi)*cos(x*180/pi)},
{cos(y*180/pi)*sin(x*180/pi)}, {sin(y*180/pi)});
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}