答案1
我提供两种不同的方法(Ti钾Z 和 PGFPlots)。很难知道哪一个是最好的,因为我们不知道您是否想“手工”绘制图形(就像我做的那样),或者您有一个函数或一个数据文件......如果您有一个函数或数据文件,我会选择使用 PGFPlots 制作的第二个选项。
好吧,无论哪种情况,修改下列其中一张图片并使其适应您的需要都不难。
\documentclass[multi]{standalone}
\usepackage{pgfplots}
% options for the second picture
\pgfplotsset{compat=1.17}
\pgfplotsset{tick style={draw=none}}
\begin{document}\centering
\begin{tikzpicture}[line cap=round,scale=1.5]
\draw[-latex] (-4,0) -- (4,0) node [above] {$r$};
\draw[-latex] (0,0) node [below] {$O$} -- (0,4) node [right] {$q(r)$};
\draw[dashed] (-1,0) -- (-1,3);
\draw[dashed] (1,0) node[below] {$R_0$} -- (1,3);
\draw[dashed] (2,0) node[below] {$(R+R_0)/2$} -- (2,1.2);
\node[below] at (3,0) {$R$};
\node[red] at (3,3) {Ti{\itshape k}Z};
\draw[blue,thick] plot[rounded corners=0.5cm] coordinates {(-3,0) (-2,0.8) (-1.25,3) (1.25,3) (2,1.2) (3,0)};
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
[%
width=12cm,
xmin=-4,
xmax= 4,
xtick={0,1,2,3},
xticklabels={$O$,$R_0$,$(R+R_0)/2$,$R$},
hide obscured x ticks=false,
ymin= 0,
ymax= 4,
yticklabels={},
axis lines=middle,
domain=-3:3,
smooth,
xlabel={$r$},
ylabel={$q(r)$},
axis equal image=true,
]
\addplot[blue,thick] coordinates {(-3,0) (-2,0.8) (-1.25,3) (1.25,3) (2,1.2) (3,0)};
\addplot[dashed] coordinates {(-1,0) (-1,3)};
\addplot[dashed] coordinates {(1,0) (1,3)};
\addplot[dashed] coordinates {(2,0) (2,1.2)};
\node [red] at (3,3) {PGFPlots};
\end{axis};
\end{tikzpicture}
\end{document}