katnisswuyuechen 2019-03-21
Matplotlib的使用
现在有很多Python科学计算的书籍,我在参加数学建模比赛的时候也见到过很多同学使用Python绘图,感觉跟Matlab差不多,但是Matlab是真的大啊~首先看看如何画出第一个图形:
首先导入依赖的类库:
import numpy as np
import matplotlib.pyplot as plt
np plt这两个名感觉都成了规范了,大家都这么写。
接下来以绘制 sin() 函数为例:
x = np.linspace(0, 2*np.pi,100)
y1 = np.sin(x)
plt.figure()
plt.plot(x, y1)
plt.show()
完整代码:
#coding:utf-8
import matplotlib
from matplotlib.font_manager import *
import matplotlib.pyplot as plt
import numpy as np
myfont = FontProperties(fname='/home/linuxidc/.local/share/fonts/文泉驿正黑.ttf')
matplotlib.rcParams['axes.unicode_minus']=False
x = np.linspace(0, 2*np.pi,100)
y1 = np.sin(x)
plt.figure()
plt.plot(x, y1)
如果有Matlab的基础会非常好理解,首先指定x的范围以及点之间的间距,C指定了函数f(x),plt.figure()是绘制的开始,plot最基础的用法,第一个参数是x,第二个参数是f(x),最后是show()方法显示图形,那么如何在一张图表中显示两个或者多个函数图形?
x = np.linspace(0, 2*np.pi,100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure()
plt.plot(x, y1)
plt.plot(x, y2)
plt.show()
只要稍作修改就可以了,这时候的图形是这样的:
除了这种情况之外,我们有的时候还会需要在不同的图表中绘制函数图形,那么代码再改动一下:
x = np.linspace(0, 2*np.pi,100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure()
plt.plot(x, y1)
plt.figure()
plt.plot(x, y2)
plt.show()
效果:
代码只是比上面的增加了一行plt.figure(),plt.figure()就像是绘制的开关,每个plt.figure()下面的内容会在一张图表中显示,最后由plt.show()统一显示出来。
基础的绘制图形情况就这么多,其实plot函数功能强大得多,参数不只是自变量和因变量,如果再一张图表中显示多条函数图形,我们需要对不同的曲线加以区分,例如:
x = np.linspace(0, 2*np.pi,100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure()
plt.plot(x, y1)
plt.plot(x, y2, color='red', linestyle='--')
plt.show()
效果:
再plot函数里添加控制的参数,例如color指定曲线的颜色,linestyle指定曲线的样式等等。