Matplotlib库 是一个面向对象的绘图库。绘图界面由pyplot模块提供
所以我们常常导入模块 import matplotlib.pyplot as plt
- plot 函数 : plt.plot( x , y ,“str” )
绘制由x,y 构成的折线图,参数x,y 可以是 单个参数,也可以是数组对象。x 和 y 的 元素个数要相等。
参数x 可以忽略,此时x视为 [0]-[y的元素个数] 的,步进为1的数组。
“str” 参数是一个字符串,决定绘制 线条和点的颜色,形状。
plot(x, y) # plot x and y using default line style and color
plot(x, y, ‘bo’) # plot x and y using blue circle markers
plot(y) # plot y using x as index array 0…N-1
plot(y, ‘r+’) # ditto, but with red plusses
plot(x, y, ‘go–’, linewidth=2, markersize=12)
plot(x, y, color=‘green’, marker=‘o’, linestyle=‘dashed’,
… linewidth=2, markersize=12)
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x= np.linspace(0,4*np.pi)#等差函数,默认50个值
y=np.sin(x)
y2=np.cos(x)
plt.plot(x,y)
两个函数插入一张图片
可以分开写
plt.plot(x,y)
plt.plot(x,y2)
或者 plt.plot(x,y,x,y2) 结果都一样
2. axis函数 : plt.axis([x1,x2,y1,y2])
传入的参数是含有4个元素的列表,修改坐标系的区间范围。
plt.axis(‘aqual’) #坐标间隔相等
plt.axis(‘off’) #消除坐标
plt.axis([0,7,-0.5,0.8])
plt.plot(x,y)
- savefig函数 : plt.savefig(“文件名”),保存当前绘制的图像 , 保存图像名为 “文件名.png”.
注,一定要在plt.show()之前,不然一片白
4.xlabel/ylabel函数 : plt. xlabel/ylabel (“str”,fontproperties =‘Kaiti’,fontsize=10)
给与X轴和Y轴名字。文字内容为 “str” ,fontproperties 是文字字体,这里’Kaiti’ 是楷体。fontsize 是字体的大小
- title 函数 : plt.title(“str”,fontproperties = ‘SimHei’,fontsize=20)
给与表格标题,标题内容是 “str”,fontproperties 是文字字体,这里’SimHei’ 是黑体。fontsize 是字体的大小。
6.text 函数 :plt. text(x , y ,“str”)
在点(x,y) 处 写文本 “str”
7.annotate 函数 : plt.annotate(“str”,xy=(x1,y1),xytext=(x2,y2),arrowprops=dict(facecolor=‘color’,shrink=0.1,width=2))
绘制箭头的函数。绘制一条指向点(x1,y1)的箭头,在点(x2,y2)写文本 “str”
箭头形状为 arrowprops, facecolor 是颜色 ,shrink为箭头和点的距离,width 为箭身宽度(px)
plt.xlabel("x轴",fontproperties = 'SimHei',fontsize=20)
plt.ylabel('y轴',fontproperties = 'SimHei',fontsize=20)
plt.title('三角函数',fontproperties = 'SimHei',fontsize=20)
plt.text(1.5*np.pi,-1,"我是最低点",fontproperties = 'SimHei',fontsize=10)
plt.annotate("箭头",xy=(2*np.pi,1),xytext=(np.pi,0),arrowprops=dict(facecolor='b',shrink=0.1,width=1),fontproperties = 'SimHei',fontsize=20)
plt.plot(x,y,'g--',x,y2,'ro')
1.figure()相当于创建一个画布
函数定义
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class ‘matplotlib.figure.Figure’>, clear=False, **kwargs)
- num:定义id,如果给出了num,之前没有使用,则创建一个新的画布;如果之前使用了这个num,那么返回那个画布的引用,在之前的画布上继续作图。如果没有给出num, 则每次创建一块新的画布。数字为编号 ,字符串为名称
- figsize:指定figure的宽和高,单位为英寸
- dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
- facecolor:背景颜色
- edgecolor:边框颜色
- frameon:是否显示边框
subplot
创建单个子图
函数定义subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)
- nrows:subplot的行数
- ncols:subplot的列数
- sharex:所有subplot应该使用相同的X轴刻度
- sharey:所有subplot应该使用相同的y轴刻度
- subplot_kw:创建关键字字典
- **fig_kw创建figure时的其他关键字
import numpy as np
from matplotlib import pyplot as plt
from scipy.interpolate import interp1d
x=np.linspace(0,10np.pi,num=20)
y=np.sin(x)
yn=np.cos(x)
f1=interp1d(x,y,kind=‘linear’)#线性插值
f2=interp1d(x,y,kind=‘cubic’)#三次样条插值
x_pred=np.linspace(0,10np.pi,num=1000)
y1=f1(x_pred)
y2=f2(x_pred)
plt.figure(1)
plt.plot(x_pred,y1,‘r’,label=‘linear’)
plt.plot(x_pred,y2,‘b–’,label=‘cubic’)
plt.legend()
plt.show()
plt.figure(2)
plt.plot(x,yn,label=‘new’)
plt.legend()
plt.show()