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

栏目: 编程工具 · 发布时间: 6年前

内容简介:最近初步学习了Python, 发现它的一个画图包 matplotlib  虽然与 MATLAB 的画图类似,但感觉还是 MATLAB 自己的画图更方便,更简单。matlab 有 explot 与 ezmesh 这两个快速生成函数的图像。matplotlib 需要先定义数据范围,有些麻烦,发现 python 有一个 sympy 包,专门处理符号数学的,有点类似 matlab 里面的符号函数,用它来画图方便多了。 还有一个更方便的 mpmath 包,可以结合 lambda 表达式使用,它与前者相比不用事先定义符

最近初步学习了Python, 发现它的一个画图包 matplotlib  虽然与 MATLAB 的画图类似,但感觉还是 MATLAB 自己的画图更方便,更简单。matlab 有 explot 与 ezmesh 这两个快速生成函数的图像。

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)

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

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

二、三维图像

画函数[-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))

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

(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相关信息见 Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-03/157657.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Game Programming Patterns

Game Programming Patterns

Robert Nystrom / Genever Benning / 2014-11-2 / USD 39.95

The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exac......一起来看看 《Game Programming Patterns》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器