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)
相关文章
|
Python
利用Python计算两点之间的距离
利用Python计算两点之间的距离
1383 0
|
数据采集 存储 自然语言处理
python爬虫分类和robots协议 | python爬虫实战之一
本节介绍了爬虫的由来,爬虫的基本流程,以及爬虫如何来获得一个新的URL,还对robot协议作出一些简单地介绍。
python爬虫分类和robots协议 | python爬虫实战之一
|
存储 Prometheus 监控
程序开发中的监控和日志分析
监控和日志分析在软件开发中至关重要,它们帮助实时了解应用状态、及时发现并解决问题。监控确保系统稳定运行,优化性能和资源;日志分析则助于追踪问题根源、监测用户行为并提供安全审计。利用如Prometheus、ELK Stack等工具可实现高效监控与日志管理,从而优化应用性能和用户体验。
395 3
|
9月前
|
人工智能 数据挖掘 vr&ar
LeviTor:蚂蚁集团开源3D目标轨迹控制视频合成技术,能够控制视频中3D物体的运动轨迹
LeviTor是由南京大学、蚂蚁集团等机构联合推出的3D目标轨迹控制视频合成技术,通过结合深度信息和K-means聚类点控制视频中3D物体的轨迹,无需显式的3D轨迹跟踪。
233 4
LeviTor:蚂蚁集团开源3D目标轨迹控制视频合成技术,能够控制视频中3D物体的运动轨迹
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
324 0
|
数据挖掘 定位技术
出租车GPS轨迹、社交软件签到、手机信令数据下载网站整理
出租车GPS轨迹、社交软件签到、手机信令数据下载网站整理
718 2
|
计算机视觉
OpenCV图像运动模糊
OpenCV图像运动模糊
179 0
|
存储 SQL 数据库
django如何连接sqlite数据库?
django如何连接sqlite数据库?
582 0
|
机器学习/深度学习 算法 自动驾驶
【计算机视觉】Deep SORT多目标跟踪算法讲解(图文解释 超详细)
【计算机视觉】Deep SORT多目标跟踪算法讲解(图文解释 超详细)
1219 0
|
Android开发 开发工具 git
Android USB转串口通信
一、引用 1、Git上最火的USB转串口通信 2、Android之USB转串口通信 3、安卓开发中的USB转串口通讯 二、截图 废话不多说,先上图,micro usb -> usb 连接的测试温度的外设(其实是个测试粮油品质的,还有TPM值等等) usb_connect.png 三、流程 1、mainfest中注册监听USB拔插动作并且过滤对应vid,pid的设备。
4969 0