这是我的代码。
\begin{tikzpicture}[scale=1.5]
\begin{axis}[
view/h=150, view/v=10,
axis equal,
axis lines=center, ticks=none,
xmin=-2, xmax=2, ymin=-3, ymax=5, zmin=-2, zmax=2,
xlabel={$x$},
ylabel={$y$},
zlabel={$z$},
]
\addplot3 [
domain=0:360,
samples=50,
red,
thick,
]
({cos(x)},{0},{sin(x)});
\addplot3[
opacity=0.7,
mesh,
gray,
z buffer=sort,
samples=50,
variable=\u,
variable y=\v,
domain=0:360,
y domain=0:2
]
({cos(u)},{v},{sin(u)});
\addplot3 [
domain=0:360,
samples=50,
red,
thick,
]
({cos(x)},{2},{sin(x)});
\end{axis}
\end{tikzpicture}
这是我的图像。
我怎样才能将标签放置在每个轴的尖端?另外,由于我在上面使用了 scale=1.5,字体被放大了。我怎样才能在代码中调整它们的大小?
答案1
您可以将刻度标签放置在以下样式中
xlabel style={at={(ticklabel* cs:1.05)},anchor=east}
在所需位置。如果您希望刻度标签更靠近箭头尖端,请减小到较小的值1.05
。为了增加绘图,请不要使用,scale
而是更改。将减小到 0 是有意义的,您只需绘制一维图。此外,您可能希望重新绘制 y 轴的可见部分,以使图片更像 3d。库已加载,因为它已加载,因此允许我们确定这个可见部分。width
axis
samples y
fillbetween
intersections
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}%[scale=1.5]
\begin{axis}[width=12cm,
view/h=150, view/v=10,
axis equal,
axis lines=center, ticks=none,
xmin=-2, xmax=2, ymin=-3, ymax=5, zmin=-2, zmax=2,
xlabel={$x$},xlabel style={at={(ticklabel* cs:1.05)},anchor=east},
ylabel={$y$},ylabel style={at={(ticklabel* cs:1.05)},anchor=160},
zlabel={$z$},zlabel style={at={(ticklabel* cs:1.05)},anchor=south},
]
\addplot3 [
domain=0:360,
samples=50,
red,
thick,samples y=0,
]
({cos(x)},{0},{sin(x)});
\addplot3[
opacity=0.7,
mesh,
gray,
z buffer=sort,
samples=50,
variable=\u,
variable y=\v,
domain=0:360,
y domain=0:2,%samples y=2,
]
({cos(u)},{v},{sin(u)});
\addplot3 [name path=front,
domain=0:360,
samples=50,
red,
thick,samples y=0,
]
({cos(x)},{2},{sin(x)});
\path[name path=yaxis] (0,0,0) -- (0,\pgfkeysvalueof{/pgfplots/ymax},0);
\draw[name intersections={of=front and yaxis}]
(intersection-1) -- (0,\pgfkeysvalueof{/pgfplots/ymax}-0.1,0);
\end{axis}
\end{tikzpicture}
\end{document}
顺便说一句,为了将来,我恳请您提供以 开头\documentclass
和结尾的完整但最少的代码\end{document}
。