我对这段代码有疑问:
\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
%xtick={0,1,...,10},
ytick={0,1*pi,...,3*pi},
domain=0:3*pi,
%scaled y ticks={real:3.1415},
ytick scale label code/.code={$\cdot Q$},]
\addplot[domain=0:1, samples=100, color=blue]({x},{2*pi});
\addplot[domain=1:10, samples=100, color=red]({x},{2*pi/x});
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
我想要这样的东西:
我想取消 y 轴上的 3.14 和 6.28 值,并用“$Q$”替换 6.28 值,此外,我想取消 x 轴上的所有值,并在红色函数的开头与蓝线的结尾对应处插入“$R$”。我还想改善图表中的空间,我的意思是,3.14 和 6.28 之间的空间太宽了。可以吗?
第一次编辑:我尝试编辑我的代码
\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}
\usepackage{mathtools}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
axis lines = center,
xlabel = $r$,
ylabel = $u$,
xtick={5},
xticklabel={$R$},
ytick={0,2*pi},
domain=0:3, y domain=0:10,
%scaled y ticks={real:3.1415},
%ytick scale label code/.code={$\cdot \pi$},
yticklabel={$\dfrac{Q}{R}$}]
\addplot[domain=0:5, samples=100, color=blue]({x},{2*pi});
\addlegendentry{$\dfrac{Q}{R}$}
\addplot[domain=0:10, samples=100, color=white]({x},{x});
\addlegendentry{}
\addplot[domain=5:15, samples=100, color=red]({x},{10*pi/x});
\addlegendentry{$\dfrac{Q}{r}$}
\addplot[domain=0:10, samples=100, color=white]({x},{x});
\addlegendentry{}
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
现在,我的最后一个问题是如何尽可能缩短垂直轴并延长水平轴。我该怎么做?再次感谢
答案1
您可以使用 xmax= 和 ymax= 定义轴的长度
\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}
\usepackage{mathtools}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
axis lines = center,
xlabel = $r$,
ylabel = $u$,
xtick={5},
xticklabel={$R$},
ytick={0,2*pi},
xmax=30pt,
ymax=8pt,
domain=0:3, y domain=0:10,
%scaled y ticks={real:3.1415},
%ytick scale label code/.code={$\cdot \pi$},
yticklabel={$\dfrac{Q}{R}$}]
\addplot[domain=0:5, samples=100, color=blue]({x},{2*pi});
\addlegendentry{$\dfrac{Q}{R}$}
\addplot[domain=0:10, samples=100, color=white]({x},{x});
\addlegendentry{}
\addplot[domain=5:20, samples=100, color=red]({x},{10*pi/x});
\addlegendentry{$\dfrac{Q}{r}$}
\addplot[domain=0:10, samples=100, color=white]({x},{x});
\addlegendentry{}
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
答案2
- 抱歉,但您的问题不太清楚。
- 你为什么使用这么旧的
pgfplots
版本?最新的是 1.18! - 第二个 MWE 不重现第一个图像。这是否意味着您在寻找其他图像?
- 您说的“3.14 和 6.28 之间的间距太宽”是什么意思?它由使用的功能和图表高度定义。那么,您想降低图表高度吗?...
我猜,你正在追求这样的事情:
\documentclass{article}
%\documentclass[margin=3mm]{standalone}
\usepackage{mathtools}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18, % <---
height=5cm, % <---
width=10cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines = center,
xlabel = $r$,
ylabel = $u$, ymin=0, ymax=3*pi, % <---
xtick = \empty, % <---
extra x ticks={0,5}, % <---
extra x tick labels={0, $R$}, % <---
ytick={0,2*pi},
yticklabel={$\dfrac{Q}{R}$},
samples=100, no marks, % <---
every axis plot post/.append style={very thick} % <---
]
\addplot +[domain=0:5] {2*pi}; % <---
\addplot +[domain=5:15] {10*pi/x}; % <---
\legend{Q/R, Q/r} % <---
\end{axis}
\end{tikzpicture}
\end{document}
- 我的 MWE 与您的第二个 MWE 相比的所有更改均由
% <---
- 如果提出的解决方案不能解决您的问题,至少您的 MWE 中不会出现(大量)混乱。
答案3
我认为这是最好的解决方案,或者至少这个解决方案解决了我的问题
\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
%\pgfplotsset{width=10cm,compat=1.1.8}
\usepackage{mathtools}
\begin{document}
\begin{center}
\begin{tikzpicture}
\pgfplotsset{compat=1.18, height=5cm, width=15cm}
\begin{axis}[
axis lines = center,
xlabel = $r$,
ylabel = $u$, ymin=0, ymax=3*pi,
xtick = \empty,
extra x ticks={0,5},
extra x tick labels={0, $R$},
ytick={0,2*pi},
yticklabel={$\dfrac{Q}{R}$},
samples=100, no marks,
every axis plot post/.append style={very thick}
]
\addplot[domain=0:5, samples=100, color=blue]({x},{2*pi});
\addlegendentry[text width=10pt,text depth=9pt] {$\dfrac{Q}{R}$}
\addplot[domain=5:20, samples=100, color=red]({x},{10*pi/x});
\addlegendentry[text width=10pt,text depth=8pt] {$\dfrac{Q}{r}$}
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
如果您认为此解决方案可以改进,请您发布另一个解决方案。非常感谢。