Target:
从文件中读取数据,用python画出对应的图,单个图以及多个子图的情况
1. 单个图多条线
从txt文件中读取数据,一列数据画一条线,一共六列,txt文件数据类型如下:
-0.009817 0.009817 -0.001963 -0.002700 0.005400 -0.002600
-0.007854 0.011781 0.000000 -0.002400 0.004900 -0.002400
...
...
...
-0.007854 0.009817 0.000000 -0.002200 0.004400 -0.002100
画图代码如下:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import os
from matplotlib.backends.backend_pdf import PdfPages
model_path = "/home/will/PycharmProjects/Plot_data/record.txt"
actual_wheel_R = []
actual_wheel_F = []
actual_wheel_L = []
desired_wheel_R = []
desired_wheel_F = []
desired_wheel_L = []
for line in open(model_path,"r"):
num = 0
print(type(line),line.split(' '))
actual_wheel_R.append(np.float(line.split(' ')[0]))
actual_wheel_F.append(np.float(line.split(' ')[1]))
actual_wheel_L.append(np.float(line.split(' ')[2]))
desired_wheel_R.append(np.float(line.split(' ')[3]))
desired_wheel_F.append(np.float(line.split(' ')[4]))
desired_wheel_L.append(np.float(line.split(' ')[5].split('\n')[0]))
t = np.arange(0,len(actual_wheel_R),1)
plt.plot(t, actual_wheel_R, '-o',linewidth=3, label='actual_wheel_R')
plt.plot(t, actual_wheel_F, '-^',linewidth=3, label='actual_wheel_F')
plt.plot(t, actual_wheel_L, linewidth=3, label='actual_wheel_L')
plt.plot(t, desired_wheel_R,'-o', linewidth=3, label='desired_wheel_R')
plt.plot(t, desired_wheel_F, '-^',linewidth=3, label='desired_wheel_F')
plt.plot(t, desired_wheel_L, linewidth=3, label='desired_wheel_L')
plt.legend(loc=1, fontsize = '20')
plt.ylabel('Velocity(m/10ms)', fontsize = 20)
plt.xlabel('time(10ms)', fontsize = 20)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.show()
效果如图所示: 
2. 多个子图
从txt文件中读取数据,一列数据画一条线,一共12列,前六列画一张子图,后六列画另一张子图,txt文件数据类型如下:
0.000000 0.009817 0.000000 0.000000 -0.000100 0.000000 0.005144 -0.003416 0.001060 0.001702 -0.000093 -0.001574
0.000000 0.009817 0.000000 0.000000 -0.000100 0.000000 0.005144 -0.003318 0.001060 0.001702 -0.000094 -0.001574
...
...
...
0.000000 0.007854 0.000000 0.000000 -0.000100 0.000000 0.005144 -0.003240 0.001060 0.001702 -0.000095 -0.001574
画图代码如下:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import os
from matplotlib.backends.backend_pdf import PdfPages
model_path = "/home/will/PycharmProjects/Plot_data/record.txt"
actual_wheel_R = []
actual_wheel_F = []
actual_wheel_L = []
desired_wheel_R = []
desired_wheel_F = []
desired_wheel_L = []
actual_ang_R = []
actual_ang_F = []
actual_ang_L = []
desired_ang_R = []
desired_ang_F = []
desired_ang_L = []
for line in open(model_path,"r"):
num = 0
print(type(line),line.split(' '))
actual_wheel_R.append(np.float(line.split(' ')[0]))
actual_wheel_F.append(np.float(line.split(' ')[1]))
actual_wheel_L.append(np.float(line.split(' ')[2]))
desired_wheel_R.append(np.float(line.split(' ')[3]))
desired_wheel_F.append(np.float(line.split(' ')[4]))
desired_wheel_L.append(np.float(line.split(' ')[5]))
actual_ang_R.append(np.float(line.split(' ')[6]))
actual_ang_F.append(np.float(line.split(' ')[7]))
actual_ang_L.append(np.float(line.split(' ')[8]))
desired_ang_R.append(np.float(line.split(' ')[9]))
desired_ang_F.append(np.float(line.split(' ')[10]))
desired_ang_L.append(np.float(line.split(' ')[11].split('\n')[0]))
t = np.arange(0,len(actual_wheel_R),1)
ax1 = plt.subplot(2,1,1)
ax2 = plt.subplot(2,1,2)
plt.sca(ax1)
plt.plot(t, actual_wheel_R, '-o',linewidth=3, label='actual_wheel_R')
plt.plot(t, actual_wheel_F, '-^',linewidth=3, label='actual_wheel_F')
plt.plot(t, actual_wheel_L, linewidth=3, label='actual_wheel_L')
plt.plot(t, desired_wheel_R,'-o', linewidth=3, label='desired_wheel_R')
plt.plot(t, desired_wheel_F, '-^',linewidth=3, label='desired_wheel_F')
plt.plot(t, desired_wheel_L, linewidth=3, label='desired_wheel_L')
plt.legend(loc=1, fontsize = '20')
plt.ylabel('Velocity(m/10ms)', fontsize = 20)
plt.xlabel('time(10ms)', fontsize = 20)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.sca(ax2)
plt.plot(t, actual_ang_R, '-o',linewidth=3, label='actual_ang_R')
plt.plot(t, actual_ang_F, '-^',linewidth=3, label='actual_ang_F')
plt.plot(t, actual_ang_L, linewidth=3, label='actual_ang_L')
plt.plot(t, desired_ang_R,'-o', linewidth=3, label='desired_ang_R')
plt.plot(t, desired_ang_F, '-^',linewidth=3, label='desired_ang_F')
plt.plot(t, desired_ang_L, linewidth=3, label='desired_ang_L')
plt.legend(loc=1, fontsize = '20')
plt.ylabel('Angle(Radian)', fontsize = 20)
plt.xlabel('time(10ms)', fontsize = 20)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.show()
效果如下图所示: 
|