贤者:如何沿着函数f(x)的图在x的特定值处绘制点?

时间:2019-02-27 07:00:48

标签: matplotlib plot graph point sage

如果我有一个函数f(x)的二维图,像这样:

f(x) = sin(x)
show(plot(f, (x,0, 2 * pi)))

使用鼠尾草,如何在f(x)的指定值处沿x的图绘制点?例如,如何在上图的上方显示红点,使其看起来像下图?

graph of sine function with red dots at specific points on graph

给出值L= [0, pi/8, pi/4, pi/2, 3*pi/4, pi]的列表,是否有一种简便的方法可以在f(x)的图上以x的每个值绘制点?

1 个答案:

答案 0 :(得分:1)

要绘制点列表,请使用pointspoint2d。参见:

请注意,您还可以自定义轴上的刻度 匹配您要绘制的点。

这里是一个例子。

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')

Plot sine curve with some points

要放大点,请使用size(默认大小为10)。

要设置总和中图形元素的层顺序, 使用zorder

例如,可以如下定义f_dots而不是上面的内容:

sage: f_dots = points(xy, color='red', size=30, zorder=20)

并获得较大的红点,它们位于曲线的“顶部”,而不是“下方”。