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


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

查看所有标签

猜你喜欢:

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

Vim实用技巧

Vim实用技巧

[英] Drew Neil / 杨源、车文隆 / 人民邮电出版社 / 2014-5-1 / 59.00元

vim是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中得到非常广泛的使用。vim能够大大提高程序员的工作效率。对于vim高手来说,vim能以与思考同步的速度编辑文本。同时,学习和熟练使用vim又有一定的难度。 《vim实用技巧》为那些想要提升自己的程序员编写,阅读本书是熟练地掌握高超的vim技巧的必由之路。全书共21章,包括121个技巧。每一章......一起来看看 《Vim实用技巧》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具