大家好,我想在三维坐标系中绘制一个仅有 1 个变量的二维函数:y=9x-x^3....它应该只是 xy 平面上的 1 条曲线......有什么办法吗???不要问我为什么,太多了,无法解释......下面是我目前的代码,它可以工作,但方向是错误的,我不明白为什么,它应该在 xy 平面上弯曲,而不是 xz 平面......然后我真的不明白 3dplot、pgfplot 是怎么回事......所以帮帮我吧!哦,我的包名可能是错的,如果代码无法编译,请检查包名......抱歉给您带来不便,我在网站上输入了包,可能拼写错误......谢谢!
\usepackage{tikz}
\usepackage{3dplot}
\usepackage{pgfplot}
\documentclass{article}
\begin{tikzpicture}
\begin{axis}
[domain=0:2.00,
samples=20,
z buffer=sort,
]
\addplot3 [domain = 0:3] {9*x-x^3};
\end{axis}
\end{tikzpicutre}
答案1
我在想类似的事情,
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=\textwidth,
axis lines=left,
xlabel=$x$,
ylabel=$z$,
zlabel=$y$,
ticks=none,
view={240}{20}]
\addplot3[surf, samples=50, domain=0:2] ({x},{y},{9*x - x^3});
\end{axis}
\end{tikzpicture}
\end{document}
但可能有更好的方法来参数化它。在下面的代码中,变量 y 扮演变量 z 的角色,因此您可以微调 x 和 z 的范围。还可以通过更改两个角度(极角和方位角)的值来调整视点。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=\textwidth,
axis lines=left,
xlabel=$x$,
ylabel=$y$,
zlabel=$z$,
xmin=0,
xmax=2,
ticks=none,
view={40}{50}]
\addplot3[surf, samples=50, domain=0:2, y domain=0:2] ({x},{9*x - x^3},{y});
\end{axis}
\end{tikzpicture}
\end{document}
希望能帮助到你。
罗曼
答案2
我对这个问题的理解有点不同,即要求在 xy 平面上有一条曲线。以下是两种实现该目标的方法。
\documentclass[tikz,border=5pt]{standalone}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\tdplotsetmaincoords{40}{70}
\begin{tikzpicture}[tdplot_main_coords,scale=0.5]
\draw plot[domain=0:3,samples=100,variable=\x] ({\x},{9*\x*(1-\x*\x/9)},0);
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
[domain=0:2.00,
samples=50,samples y=1
]
\addplot3 [domain = 0:3] ({x},{9*x-x*x*x},{0});
\end{axis}
\end{tikzpicture}
\end{document}
请注意,这些图中的视角不同。