nic*_*aro 5 python plot matplotlib sympy
在 SymPy 中,您可以自动根据表达式绘制曲面,即
from sympy import symbols
from sympy.plotting import plot3d
x, y = symbols('x y')
monkey_saddle = x**3 - 3*x*y**2
plot3d(monkey_saddle, cmap="RdYlBu")
Run Code Online (Sandbox Code Playgroud)
要得到
我找不到任何kwarg改变颜色图的东西。我知道我可以创建一个lambdify然后直接使用 matplotlib 绘制绘图。但我很好奇是否有办法直接在 SymPy 中执行此操作。
我读了源代码sympy.plotting.plot.py,似乎cmap设置为jet:
collection = self.ax.plot_surface(x, y, z,
cmap=self.cm.jet,
rstride=1, cstride=1,
linewidth=0.1)
Run Code Online (Sandbox Code Playgroud)
您需要设置对象的 cmap collections,并在调用plot3d()call之前unset_show()禁用调用pyplot.show():
from sympy import symbols
from sympy.plotting import plot3d
from sympy.plotting.plot import unset_show
unset_show()
x, y = symbols('x y')
monkey_saddle = x**3 - 3*x*y**2
p = plot3d(monkey_saddle)
p._backend.ax.collections[0].set_cmap("RdYlBu_r")
Run Code Online (Sandbox Code Playgroud)