![使用 TikZ 绘制函数](https://linux22.com/image/430335/%E4%BD%BF%E7%94%A8%20TikZ%20%E7%BB%98%E5%88%B6%E5%87%BD%E6%95%B0.png)
我是 TikZ 的初学者,在绘制函数时遇到两个问题。
首先:该函数相当大,我需要 x 方向的 8000 个点和 y 方向的 50 个点。每次我尝试获取一些类似的大 Ace 时,它们都太大了。我尝试缩放它们,但没有成功。
第二:函数为:f(x)=10ln(1+1/(4π^24π0,025^2/4pi*(340/x)) 我尝试绘制此函数在 x 方向最多 8 个点,但却收到错误。
有人可以帮助我或者给我发送一个类似的问题以便我可以找到解决方案吗?
谢谢
答案1
pgfplots
将绘图缩放到所需的宽度和高度。如果绘制大量样本,则可以通过取消分数中的公因数等来简化表达式。
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=10cm,height=7cm,
xlabel={$x$},ylabel={$f(x)$}]
\addplot[domain=1:8000, smooth, samples=501]
{10*ln(1+1/(0.01*pi^2/4*(340/x))};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
如果我理解正确的话,问题在于使用 TikZ 绘制函数时,默认长度单位是 1cm,而您想保持 TikZ 坐标和(x, y)
函数值之间的 1:1 对应关系?
如果是这样,改变 TikZ 的单位向量可能就足够了;请参阅 TikZ 文档的第 25.2 节:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[x=0.04pt,y=4pt]
\draw[domain=1:8000, smooth, samples=250] plot (\x,{10*ln(1+1/(4*pi^2*4*pi*0.025^2/4*pi*(340/\x)))});
\end{tikzpicture}
\end{document}