这个问题很简单。我对 LaTex 图表的 Asymptote 还不太熟悉,想绘制指数函数。
问题是,对于较小的 x 值,它会取较大的值,因此增长非常快。这是我的代码:
\begin{asy}
// rnoanvrno
unitsize(1cm);
size(5cm, 5cm);
import graph;
// Declare variables
real xmin = 0;
real xmax = 3;
real ymin = 0;
real ymax = 3;
pair origin = (xmin, ymin);
pair xline = (xmax, ymin);
pair yline = (xmin, ymax);
// Define the paths for the graph
path xaxis = origin -- xline;
path yaxis = origin -- yline;
arrowbar arrow = Arrow(TeXHead);
// Draw the axes and titles
draw(xaxis, arrow);
draw(yaxis, arrow);
label("t", xline, SE);
label("x(t)", yline, NW);
// Declare the function to plot
real f(real x) {
return exp(x);
}
// Display it
path g = graph(f, xmin, xmax, n=200);
draw(g);
\end{asy}
如您所见,这非常不方便。我该如何解决这个问题?我本来想设置一下,size(5cm, 5cm)
但根本没有效果。有没有办法裁剪函数或在某个阈值之后停止显示值?
我的另一个想法是用 y 而不是 x 来绘制它,并用 替换值path g = graph(f, xmin, xmax, n=200);
,前提是这是可能的。xmin, xmax
ymin, ymax
提前致谢
答案1
这是一种简单的方法(我猜初学者喜欢这样!),使用简单的 Asymptote 命令进行绘图,如下所示。
// http://asymptote.ualberta.ca/
unitsize(1cm,3mm); // scaling x and y
size(6cm); // auto-scaling the whole figure
import graph;
real xmin=-1,xmax=2;
path g=graph(exp,xmin,xmax);
draw(Label("$e^x$",Relative(.8),LeftSide),g,red);
draw(Label("$x$",EndPoint,S),(xmin-.3,0)--(xmax+.5,0),Arrow(TeXHead));
draw(Label("$y$",EndPoint,W),(0,-1)--(0,2+exp(xmax)),Arrow(TeXHead));
label("$1$",(0,1),NW);
label("O",(0,0),SW);
有很多示例代码2D 图形在 Asymptote 画廊。