matplot画轨迹图

简介: matplot画轨迹图

绘图效果如下所示:

image.png

matplot介绍:

1.plt.plot() 画图函数

plt.plot(x,y,label, ls, linewidth, color,marker)

image.png

de6c81366b0441ac99c6e7fbc43a1533.jpg

plt.legend()的作用:在plt.plot() 定义后plt.legend() 会显示该 label 的内容,否则会报error: No handles with labels found to put in legend.
plt.xlabel(‘横坐标显示内容’,fontproperties=font_set)
plt.ylabel(‘纵坐标显示内容/m’,fontproperties=font_set)
如果是中文必须设置字体,不然显示不出来

代码


import csv
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
#设置宋体字体,不然中文字体无法正常显示
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=20)
# 读取csv数据
def readCsv(path):
    pose = []
    with open(path) as f:
        f_csv = csv.reader(f)
        # headers = next(f_csv)
        for row in f_csv:
            p = [float(row[0]), float(row[1])]
            pose.append(p)
    return pose
def drawPic(data):
    plt.figure(figsize=(13, 8))
    color = ['black','red']
    label = ["参考路径", 'PPO-PID']
    linestyle = ['--', '-.']
    linewidth = [2, 2]
    for j in range(len(data)):
        x = []
        y = []
        for p in data[j]:
            x.append(p[0])
            y.append(p[1])
        plt.plot(x,y,label=label[j], ls=linestyle[j], linewidth=linewidth[j], color=color[j])
    plt.legend(prop={'family':'SimSun','size':15})
    plt.xlabel('横向位置/m',fontproperties=font_set)
    plt.ylabel('纵向位置/m',fontproperties=font_set)
    # plt.axis('off')
    plt.show()
path_name1 = 'H:/python-workspace/PPO-PyTorch-master/参考路径.csv'
path_name2 = 'C:/Users/yangqiang/Documents/WeChat Files/wxid_7089350895312/FileStorage/File/2022-04/车体坐标 - 副本.csv'
pose1 = readCsv(path_name1)
pose2 = readCsv(path_name2)
# 多条轨迹组成数据集 [pose1, pose2, pose3...]
data = [pose1,pose2]
drawPic(data)

另一种轨迹图


image.png

import matplotlib.pyplot as plt
# 各个点的经纬度及编号
l = [[120.7015202, 36.37423, 0],
     [120.7056165, 36.37248342, 4],
     [120.70691, 36.37579616, 3],
     [120.7031731, 36.37753964, 5],
     [120.7011609, 36.37905063, 10],
     [120.6973521, 36.37876006, 8],
     [120.6928965, 36.37800457, 6],
     [120.6943337, 36.37521499, 7],
     [120.6962022, 36.37643544, 9],
     [120.6987175, 36.37457569, 1],
     [120.6997954, 36.37591239, 2],
     [120.7015202, 36.37423, 0]]
def drawPic(dots):
    plt.figure(figsize=(10, 6))
    plt.xlim(120.692, 120.708, 0.002)  # x轴的刻度范围
    plt.ylim(36.372, 36.380, 0.001)  # y轴的刻度范围
    plt.xlabel('传感器经度', fontproperties="simhei")  # x轴的标题
    plt.ylabel('传感器纬度', fontproperties="simhei")  # y轴的标题
    # 绘制各个点及点所代表地点名称
    for i in range(len(dots) - 1):
        plt.text(l[i][0], l[i][1], '传感器' + str(l[i][2]), color='#0085c3', fontproperties="simhei")
        plt.plot(l[i][0], l[i][1], 'o', color='#0085c3')
    # 连接各个点
    for i in range(len(dots) - 1):
        start = (l[i][0], l[i + 1][0])
        end = (l[i][1], l[i + 1][1])
        plt.plot(start, end, color='#0085c3')
    plt.show()
drawPic(l)
相关文章
|
7月前
|
定位技术
ArcGIS地形起伏度+地形粗糙度+地表切割深度+高程变异系数提取
ArcGIS地形起伏度+地形粗糙度+地表切割深度+高程变异系数提取
2376 0
|
算法
轨迹系列——一种基于中值滤波的轨迹纠偏方法和几点思考
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在无路网的情况下,如何进行轨迹纠偏也是一个很多人在研究的内容,各种方案均有很多,有基于不同滤波算法的,也有基于机器学习的,等等。
2863 0
|
6天前
|
存储 数据可视化 关系型数据库
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
|
6天前
|
机器学习/深度学习 传感器 算法
目标检测+车道线识别+追踪+测距(代码+部署运行)
目标检测+车道线识别+追踪+测距(代码+部署运行)
85 0
|
6天前
|
数据处理
分面中嵌入趋势线
分面中嵌入趋势线
33 1
|
7月前
|
存储 编解码 定位技术
案例!从天地图中提取全市的建筑物矢量轮廓-以苏州市为例
案例!从天地图中提取全市的建筑物矢量轮廓-以苏州市为例
126 1
|
9月前
|
数据可视化 数据挖掘 Linux
转录组下游分析丨利用limma包进行差异表达分析,结果可视化绘制火山图和热图
转录组下游分析丨利用limma包进行差异表达分析,结果可视化绘制火山图和热图
|
9月前
|
机器学习/深度学习 算法
【目标识别】检测具有相同背景的不同图像并找到图像中的红色圆圈目标(Matlab代码实现)
【目标识别】检测具有相同背景的不同图像并找到图像中的红色圆圈目标(Matlab代码实现)
|
10月前
|
存储 数据可视化 数据管理
处理RGB-D图像数据以构建室内环境地图并估计相机的轨迹
视觉同步定位和映射 (vSLAM) 是指计算摄像机相对于周围环境的位置和方向,同时映射环境的过程。 您可以使用单眼摄像头执行 vSLAM。但是,深度无法准确计算,估计的轨迹未知,并且随着时间的推移而漂移。要生成无法从第一帧开始三角测量的初始地图,必须使用单眼相机的多个视图。更好、更可靠的解决方案是使用 RGB-D 相机,它由一个 RGB 彩色图像和一个深度图像组成。
122 0
|
11月前
|
定位技术 API C#
【EasyAR学习】平面追踪、表面跟踪和运动跟踪、稀疏空间地图
Easy平面追踪、表面跟踪和运动跟踪、稀疏空间地图解析与实战
632 0