如何使用Sympy绘图在特定的x坐标上添加标记 [英] How to add markers at certain x coordinates using Sympy plot

查看:18
本文介绍了如何使用Sympy绘图在特定的x坐标上添加标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个符号函数、一个x坐标序列和一个使用";Plot&Quot;绘制的图形。

import numpy as np
import sympy as sp

x = sp.Symbol('x')
xs = np.linspace(-2, 3, 5) #[-2.   -0.75  0.5   1.75  3.  ]
ys = sp.cos(2*x)*(sp.sin(2*x) + 1.5)+sp.cos(x)
graph = sp.plot(ys, xlim=[-2,3])

如何从Xs变量在X坐标处的函数上绘制标记?

我得到的图表:

我希望获得的图表:

推荐答案

sympy仅支持有限的打印功能。此外,也没有散点图功能。一般来说,症状和麻木不能很好地混合在一起。通常,函数是lambdified,然后通过matplotlib绘制。

如果您真的想完全保持在症状内部,您可以滥用implicit surfaces来表示一个点:

import numpy as np
import sympy as sp

x = sp.Symbol('x')
y = sp.Symbol('y')
xs = np.linspace(-2, 3, 5)  # [-2.   -0.75  0.5   1.75  3.  ]
ys = sp.cos(2 * x) * (sp.sin(2 * x) + 1.5) + sp.cos(x)

plot1 = sp.plot(ys, xlim=[-2.2, 3.2], show=False)
rad = 0.2
plot2 = sp.plot_implicit(x ** 2 + y ** 2 < 0.2 ** 2, line_color='red', show=False)
for xi in xs:
    yi = ys.subs(x, xi).evalf()
    plot2 = sp.plot_implicit((x - xi) ** 2 + (y - yi) ** 2 < rad ** 2, line_color='red', show=False)
    plot1.append(plot2[0])
plot1.show()

这篇关于如何使用Sympy绘图在特定的x坐标上添加标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆