设为首页 加入收藏

TOP

Python绘图库 matplotlib, sympy, mpmath与 Matlab 解析
2019-03-24 00:08:08 】 浏览:109
Tags:Python 图库 matplotlib sympy mpmath Matlab 解析

matplotlib 需要先定义数据范围,有些麻烦,发现 python 有一个 sympy 包,专门处理符号数学的,有点类似 matlab 里面的符号函数,用它来画图方便多了。 还有一个更方便的 mpmath 包,可以结合 lambda 表达式使用,它与前者相比不用事先定义符号变量。


一、二维图像


画 [-10, 10]  范围内的 y=x 2  y=x2y=x^2:


(1) 使用 matlab


ezplot('x^2',[-10,10])


 一行代码,非常简单


(2)  使用 mpmath 包里面的画图


import mpmath as mp


mp.plot(lambda x: x*x, [-10, 10])


Python绘图库 matplotlib, sympy, mpmath与 Matlab 解析


(3) Pyton  使用 sympy 包里面的画图


from sympy.plotting import plot
from sympy import symbols


x = symbols('x')
p2 = plot(x*x, (x, -10, 10))


Python绘图库 matplotlib, sympy, mpmath与 Matlab 解析


需要四行代码


(4) 使用 matplotlib 画图


import matplotlib.pyplot as plt
import numpy as np


x= np.arange(-10, 10, 0.1)
plt.plot(x*x)



也需要四行代码,画的图稍微简略


二、三维图像


画函数[-3, 3], [-2, 2] 内的 z=xe ?x 2 ?y 2  z=xe?x2?y2z=xe^{-x^2-y^2}
(1) 使用matlab 画


ezmesh(@(x,y)x.*exp(-x.^2-y.^2),[-3,3], [-2,2])1


(2) 使用 mpmath 包画


import mpmath as mp
import math


mp.splot(lambda x, y: x*math.exp(-x*x-y*y))



(3) 使用 sympy 画


from sympy import symbols
from sympy.plotting import plot3d
from sympy.functions import exp


x, y = symbols('x y')
plot3d(x*exp(-x**2-y**2), (x, -3, 3), (y, -2, 2))


Python绘图库 matplotlib, sympy, mpmath与 Matlab 解析


(4) 使用 matplotlib 画


from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D


fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-3, 3, 0.1)
Y = np.arange(-2, 2, 0.1)
X, Y = np.meshgrid(X, Y)
Z = X*np.exp(-X**2 - Y**2)
ax.plot_surface(X, Y, Z)
plt.show()


Python绘图库 matplotlib, sympy, mpmath与 Matlab 解析


综合看来,画图还是 matlab 最好看方便, mpmath 画 2d 图不错,但是 3d 图太粗糙了; sympy 中规中矩; matplotlib 太费代码了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python Pexpect库的使用 下一篇Python之matplotlib绘图示例

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目