Matplotlib概述
Matplotlib是一个Python的 2D绘图库,通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等
通过学习Matplotlib,可让数据可视化,更直观的真实给用户,使数据更加客观、更具有说服力,Matplotlib是Python的库,又是开发中常用的库
%matplotlib tk(%matplotlib qt5) 在GUI中显示,%matplotlib inline 在行内显示,内嵌显示
Figure和Subplot
Figure:面板(图),matplotlib中的所有图像都是位于figure对象中,一个图像只能有一个figure对象
Subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像
绘制基础
1、在使用Matplotlib绘制图形时,其中有两个最为常用的场景,一个是画点,一个是画线
2、数据可视化呈现的最基础图形就是:柱状图、水平条形图、折线图等;在python的matplotlib库中分别可用bar、barh、plot函数来构建它们,再使用xticks与yticks(设置坐标轴刻度)、xlabel与ylabel(设置坐标轴标签)、title(标题)、legend(图例)、xlim与ylim(设置坐标轴数据范围)、grid(设置网格线)等命令来装饰图形
plt.axis([xmin, xmax, ymin, ymax])里的axis()命令给定了坐标范围
xlim(xmin, xmax)和ylim(ymin, ymax)来调整x,y坐标范围
3、头部引包
import numpy as np import matplotlib.pyplot as plt # %matplotlib tk
直线
plt.plot(x,y)
#将(0,1)点和(2,4)连起来 import matplotlib.pyplot as plt #%matplotlib tk plt.plot([0,2],[1,4]) plt.savefig('直线.jpg') plt.show()
折线
plt.plot(x,y)
import matplotlib.pyplot as plt x=[1,2,3,4,5] squares=[1,4,9,16,25] plt.plot(x,squares) #一一对应 plt.savefig('折线.jpg') plt.show()
设置标签文字和线条粗细
# 设置标签文字和线条粗细 import matplotlib.pyplot as plt datas=[1,2,3,4,5] squares=[1,4,9,16,25] plt.plot(datas,squares,linewidth=5) #设置线条宽度 # 设置图标标题,并在坐标轴上添加标签 plt.title('Numbers',fontsize=24) plt.xlabel('datas',fontsize=14) plt.ylabel('squares',fontsize=14) plt.savefig('设置标签文字和线条粗细.jpg') plt.show()
解决标签、标题中的中文问题
解决中文问题:plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
解决符号问题:plt.rcParams[‘font.sans-serif’] = [‘SimSong’]
#设置中文乱码问题 import matplotlib.pyplot as plt datas=[1,2,3,4,5] squares=[1,4,9,16,25] plt.plot(datas,squares,linewidth=5) #设置线条宽度 plt.rcParams['font.sans-serif'] = ['SimHei'] #设置图标标题,并在坐标轴上添加标签 plt.title('标题设置',fontsize=24) plt.xlabel('x轴',fontsize=14) plt.ylabel('y轴',fontsize=14) plt.savefig('解决中文问题.jpg') plt.show()
一元二次方程的曲线y=x^2
#绘制一元二次曲线 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimSong'] #200个点的x坐标 x=range(-100,100) #生成y点的坐标 y=[i**2 for i in x ] plt.plot(x,y) plt.savefig('一元二次.jpg') #如果直接写成 plt.savefig('一元二次') 会生成一元二次.png plt.show()
正弦、余弦函数
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimSong'] x = np.arange(-3,3,0.1) y1=np.sin(x) y2=np.cos(x) # 将图像显示在figure画板上 plt.figure() plt.plot(x,y1) plt.savefig('正弦函数.jpg') plt.figure() plt.plot(x,y2) plt.savefig('余弦函数.jpg') plt.show()
子图
import matplotlib.pyplot as plt x1=[1,2,3] x2=[2,4,5] y1=[2,3,4] y2=[5,6,29] # 解决乱码 plt.rcParams['font.sans-serif']=['SimHei'] plt.subplot(221) #等价于plt.subplot(2,2,1) 2行2列第1个 plt.plot(x1,y1,'r--') #里面三个参数 plt.title('x1y1',fontsize=15,color='blue') #title设置标题 plt.xlabel('x轴',fontsize=10) #设置x轴名称 plt.ylabel('y轴',fontsize=10) #设置y轴名称 plt.subplot(222) #2行2列第3个 plt.plot(x2,y2,'r--') plt.title('x2y2',fontsize=15,color='b') #b==blue 简称 plt.savefig('子图.jpg') plt.show()