IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python用matplotlib画图(单个,多个子图) -> 正文阅读

[Python知识库]python用matplotlib画图(单个,多个子图)

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]))
    # vy.append(np.float(line.split(' ')[6]))
    # vz.append(np.float(line.split(' ')[7]))
    # comb_v.append(np.float(line.split(' ')[8].split('\n')[0]))

#print(len(comb_v))
#t = np.arange(0,99,1)
t = np.arange(0,len(actual_wheel_R),1)

#plt.plot(t, s, linewidth=3, label='S')

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.plot(t, comb_v, linewidth=3, label='comb_v')

#plt.tick_params(labelsize=16)

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()

效果如图所示:
impending

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

#my_font = matplotlib.font_manager.FontProperties(fname = '/usr/share/fonts/opentype/noto/simsun.ttc')
#model_path = '/home/will/catkin_ws/src/gazebo_mobile_manipulator/data/Record_sim_data_trans_v4_results.txt'
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]))

#print(len(comb_v))
#t = np.arange(0,99,1)
t = np.arange(0,len(actual_wheel_R),1)

#plt.plot(t, s, linewidth=3, label='S')

# subplot(numRows, numCols, plotNum)
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.plot(t, comb_v, linewidth=3, label='comb_v')

#plt.tick_params(labelsize=16)

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.plot(t, comb_v, linewidth=3, label='comb_v')

#plt.tick_params(labelsize=16)

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()

效果如下图所示:
rows2

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:30:21  更:2021-07-10 14:30:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 14:21:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码