代码如下:
begin{tikzpicture}
draw[smooth,domain=0:2,samples=300]
plot(x,{pow(0.2+0.003pow(10,x)+0.0030.00056*pow(100,x),-1)});
end{tikzpicture}
函数体是没有问题的,定义域domain如果在较小时能正常编译,如0:2,
但是增加到0:2.2便会报错dimension too large,而我需要画到0:6.5
请问这为什么会报错,以及如何实现我的画图目标
谢谢
Dimension too large
,是的, tikz(或者说tex里面的dimexpr) 本身算不了这么大的数值plot
是在你的 domain = x:y
中,按 samples = 300, 等距离取点(或许是),然后光滑曲线连接起来即可....
\draw[] plot[domain = 0:1,samples = 10] plot(\x,2*\x);
...
其实就是在取点 (0,0),(0.1,0.2),(0.2,0.4),...
, 然后连接即可
\fpeval
命令,代码如下\documentclass[margin = 1cm]{standalone}
\usepackage{tikz,xfp}
\begin{document}
\begin{tikzpicture}[x = 0.2cm,very thin]
\draw[-latex] (-1,0) -- (5,0);
\draw[-latex] (0,-0.2) -- (0,1.5);
\draw [blue]
plot [domain=0:4.25, samples=144, smooth] (\x,\fpeval{1/(1+0.015*10^{\x})});
\end{tikzpicture}
\end{document}
当然,你也可以选择 tkz-fct
宏包,它是借助 gnuplot
来绘图的,所以你的电脑必须装有这个软件,并且需要启用 --shell-escape
参数编译,代码如下
\documentclass[margin = 1cm]{standalone}
\usepackage{tkz-fct}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmax=6,ymax=1.2,ystep=0.2]
\tkzAxeXY
\tkzFct[color=blue,domain=0:6.5]{1/(1+0.015*10**x)}
\end{tikzpicture}
\end{document}