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 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> matplot画轨迹图 -> 正文阅读

[游戏开发]matplot画轨迹图

绘图效果如下所示:
在这里插入图片描述

matplot介绍:

1.plt.plot() 画图函数

plt.plot(x,y,label, ls, linewidth, color,marker)
参数名含义
x横坐标集合
y纵坐标集合
label添加曲线标签,后使用plt.legend( )创建图例。
lslinestyle,可以定义为’-', ‘–’, ‘-.’, ‘:’, ‘None’, ’ ', ‘’, ‘solid’, ‘dashed’, ‘dashdot’, ‘dotted’。效果如下图所示。
linewidth曲线宽度
color‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色,‘#008000’ RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。
markero圆圈 .点 *星号

在这里插入图片描述
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)



另一种轨迹图

在这里插入图片描述

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)


  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:52:21  更:2022-05-05 11:55:54 
 
开发: 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年11日历 -2024/11/23 12:02:11-

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