目录
Matplotlib
Matplotlib 是 Python 2D 绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
pyplot类
matplotlib.pyplot类提供一个类似matlab的绘图框架
pyplot.plot()
matplotlib.pyplot.
plot
( x , y ,' color marker line')
对于样式 'color marker line' ,每一个都是可选的。如果没有提供,则使用样式周期的值。例外情况:如果line
是给的,但不是marker
,数据将是一条没有标记的行。
color颜色
marker标记
line线条样式
import numpy as np
from matplotlib import pyplot as plt
x=np.array([1,2,3,4])
y=np.array([1,2,3,4])
z=np.array([2,4,6,8])
i=np.array([5,6,7,8])
plt.plot(x,y,'r.') #x轴 y轴 样式
plt.plot(x,z,'g*--',lw=5) #x轴 y轴 样式 宽度
plt.plot(x,i,'bD:') #x轴 y轴 样式
plt.show()
画正弦余弦函数
#画正弦函数
import numpy as np
import matplotlib.pyplot as plt #画图的库
x=np.arange(-6,6,0.1) #第一个参数是X轴的start 第二个参数是X轴的end
y=np.sin(x)
z=np.cos(x)
plt.plot(x,y)
plt.plot(x,z) #不设置颜色时,系统默认设置
plt.show()
配置属性
因为是面向对象的绘图库,我们可以为每个对象配置它们的属性,有三种方法可以配置:
- 一是通过对象的方法 set_属性名()函数
- 二是通过对象的 set() 函数
- 三是通过 pylot 模块提供的 setp() 函数
import matplotlib.pyplot as plt
plt.figure()
line=plt.plot(range(2))[0] # plot函数返回的是一个列表,因为可以同时画多条线
line.set_color('r') #设置颜色
line.set_linewidth(10) #设置宽度
plt.show()
########################################################
import matplotlib.pyplot as plt
plt.figure()
line=plt.plot(range(2))[0]
line.set(color='r',linewidth=10)
plt.show()
########################################################
plt.figure()
line=plt.plot(range(2))[0]
plt.setp(line,color='r',linewidth=10)
plt.show()
以上三种设置绘图属性都是下面同一种效果
pyplot.subplot()
plt.subplot作用是把一个绘图区域(可以理解成画布)分成多个小区域,用来绘制多个子图。
matplotlib.pyplot.
subplot
(nrows, ncols, plot_number)
nrows和ncols表示将画布分成(nrows*ncols)个小区域,每个小区域可以单独绘制图形;plot_number表示将图绘制在第plot_number个子区域。
举例: plt1 = subplot(222),
表示画布分成(2*2=4)个小区域,并将图 plt1 绘制在画布中的第二个子区域,也就是右上角位置。
import numpy as np
from matplotlib import pyplot as plt
x=[1,2,3]
y=[1,2,3]
z=[3,2,1]
a=np.arange(-2*np.pi,2*np.pi,0.1)
b=np.sin(a)
c=np.cos(a)
plt1=plt.subplot(221) #将画布划分成2*2的区域 ,我们画第1个区域
plt1.plot(x,y,'b') #画第一个图
plt2=plt.subplot(222) #将画布划分成2*2的区域 ,我们画第2个区域
plt2.plot(x,z,'r--') #画第二个图
plt3=plt.subplot(223) #将画布划分成2*2的区域 ,我们画第3个区域
plt3.plot(a,b,'c:') #画第三个图
plt4=plt.subplot(224) #将画布划分成2*2的区域 ,我们画第4个区域
plt4.plot(a,c,'y--') #画第四个图
plt.show()