研究了一下,python出图要用到matlab一样的绘制图形库matplotlib
华丽的分割线------------------------------------------------------------------------------------
matla叠加两张图很简单,比如在命令行输入:
plot(tu1); #tu1,tu2为你跑出来的数据,这里注意x轴步长一致
hold on
plot(tu2);
这样就
华丽的分割线------------------------------------------------------------------------------------
python对比波形图有两种方法:
直接上代码:
方法1:使用pylot库中的subplots函数
1 2 3 4 5 6 7 8 9 | from matplotlib import pyplot as plt #引入MATLAB一样的绘图工具库 fig, tu = plt.subplots() #subplots 绘图函数 tu.plot([1, 2, 3, 4, 5], [10, 16, 24, 32,50], label='tu1') #绘制图1([1,2,3,4]为横坐标参数,[10,20,25,30]为纵坐标参数,注意横坐标和纵坐标数目一致 tu.plot([1, 2, 3, 4, 5], [30, 50, 15, 5,20], label='tu2') #绘制图2 tu.scatter([1, 2, 3, 4, 5], [20, 10, 30, 15,10], label='tu3') #绘制散点图图3 tu.set(ylabel='y', xlabel='Time /s', title='lyb-duibi') #设置x\y\标题名称 tu.legend() #设置图例 plt.show() #出图 |
可以看到三个波形叠在一起,便于分析
方法2:
直接使用plot函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from matplotlib import pyplot as plt #引入MATLAB一样的绘图工具库 import numpy as np #引入矩阵数组库,这里用到np函数 x = np.linspace(0,4) #设置x坐标步长 y1 = np.sin(np.pi*x+1) #随便设置一个sin函数为y1 y2 = np.sin(np.pi*x*2+1) #随便设置一个sin函数为y2 plt.plot(x,y1,'-b',label ='tu1' ) #绘制图1,且设置图1名字为tu1 plt.plot(x,y2,'-r',label ='tu2' ) #绘制图2,且设置图2名字为tu2 plt.ylabel('yzuobiao') #设置y轴坐标名称 plt.xlabel('time/s') #设置2轴坐标名称 plt.title('lyb-duibi') #设置图标题 plt.legend #设置图例 plt.show() #出图 |
效果还行把!
自学python第2周, 我喜欢开源我喜欢交流,有更好的方法可以留言私聊大家一起讨论讨论