如果我有一个函数f(x)
的二维图,像这样:
f(x) = sin(x)
show(plot(f, (x,0, 2 * pi)))
使用Sage,如何在f(x)
的指定值处沿着x
图形绘制点?例如,如何在上图的顶部显示红点,使其看起来如下图所示?
给定一个值列表L= [0, pi/8, pi/4, pi/2, 3*pi/4, pi]
,有没有一种简洁的方法在f(x)
的图表上绘制每个x值的点?
要绘制点列表,请使用points
或point2d
。看到:
请注意,您还可以自定义轴上的刻度以匹配您正在绘制的点。
这是一个例子。
sage: f(x) = sin(x)
sage: xx = [0, pi/8, pi/4, pi/2, 3*pi/4, pi]
sage: yy = [f(x) for x in xx]
sage: xy = list(zip(xx, yy))
sage: f_plot = plot(f, (x, 0, 2*pi), ticks=(xx, yy), tick_formatter=(pi, None))
sage: f_dots = points(xy, color='red')
sage: p = f_plot + f_dots
sage: p
使用p.save
保存图:
sage: p.save('plot_sin_with_points.png')
要使点更大,请使用size
(默认大小为10)。
要以总和设置图形元素的图层顺序,请使用zorder
。
例如,可以如下定义f_dots
而不是上面的:
sage: f_dots = points(xy, color='red', size=30, zorder=20)
并获得更大的红点,坐在曲线的“顶部”而不是“在下面”。