python绘制轨迹图,python画二维曲线
在学习SLAM时,经常需要重现其输出姿态来测试算法的效果。在ubuntu系统中可以使用Python来完成相关工作。
一、Python在Ubuntu下的使用
在Ubuntu下使用Python有两种方式,一种是直接在控制台运行Python文件,另一种是下载IDE编辑运行Python文件。
在控制台中使用Python的方法如下:
首先确认有Python文件(filename.py),然后打开控制台进入文件的当前目录,输入以下内容运行。
python文件名. py
虽然控制台可以运行Python,但还是建议用IDE,因为无法调试。
官网提供两个版本,专业版和社区版,因为社区版是免费的,可以直接下载使用。下载后直接放入安装目录解压,然后按照解压后的指令文件执行安装命令,安装就可以成功了(有些电脑可能会因为配置原因报错,网上也有很多讲解配置环境安装的博客,供大家参考)。安装成功后,PyCharm界面如下所示。
2.用matplotlib绘制三维轨迹
Matplotlib是Python的一个绘图库。本文将讲解如何使用该库绘制三维线段,从而测试SLAM算法(电脑配置Python 2.7)的输出结果。
2.1.画一个基本的三维曲线
首先给出完整的代码,并给出输出结果。
#导入必要的模块
从mpl_toolkits.mplot3d导入axes3d
将matplotlib.pyplot作为plt导入
将numpy作为np导入
#从文件加载数据
#您可以使用open替换它
data1=np.loadtxt(。/stereo/camera trajectory new 2000 . txt )
first_2000=data1[:3]
second_2000=data1[:7]
third_2000=data1[:11]
#打印以检查数据
先打印_2000
打印秒_2000
打印第三张_2000
#新建一个图形并将其设置为3d
图=plt.figure()
ax=fig.gca(投影=3d )
#设置图形信息
ax.set_title(3D_Curve )
ax.set_xlabel(x )
ax.set_ylabel(y )
ax.set_zlabel(z )
#绘制图形,颜色为r=read
figure=ax.plot(first_2000,second_2000,third_2000,c=r )
plt.show()
这段代码很简单,相关注释也很完善,只简单说明几个需要注意的地方。首先要注意的是,建议用open读取文件中的数据,然后逐行读取;第二点是,创建新图像时一定不要忘记添加这段代码,这是将输出图像设置为3D的关键。
ax=fig.gca(投影=3d )
2.2.在同一张图片中绘制多条3D曲线。
代码和输出结果如下:
#导入必要的模块
从mpl_toolkits.mplot3d导入axes3d
将matplotlib.pyplot作为plt导入
将numpy作为np导入
#从文件加载数据
#您将此替换为open
data1=np.loadtxt(。/stereo/camera trajectory new 2000 . txt )
first_2000=data1[:3]
second_2000=data1[:7]
third_2000=data1[:11]
data2=np.loadtxt(。/stereo/camera rajectorynew 1500 . txt )
first_1000=data2[:3]
second_1000=data2[:7]
third_1000=data2[:11]
#新建一个图形并将其设置为3d
图=plt.figure()
ax=fig.gca(投影=3d )
#设置图形信息
ax.set_title(3D_Curve )
ax.set_xlabel(x )
ax.set_ylabel(y )
ax.set_zlabel(z )
#绘制图形,颜色为r=read
figure1=ax.plot(first_2000,second_2000,third_2000,c=r )
figure2=ax.plot(first_1000,second_1000,third_1000,c=b )
plt.show()
要实现这个功能,只需要在前面的代码中加入读取新数据的相关代码,在画图的时候多生成一个图形,也很简单。
2.3.划分区域后绘制三维图像。
代码和输出结果如下:
#导入必要的模块
从mpl_toolkits.mplot3d导入axes3d
将matplotlib.pyplot作为plt导入
将numpy作为np导入
#从文件加载数据
#您将此替换为open
data1=np.loadtxt(。/stereo/camera trajectory new 2000 . txt )
first_2000=data1[:3]
second_2000=data1[:7]
third_2000=data1[:11]
data2=np.loadtxt(。/stereo/camera rajectorynew 1500 . txt )
first_1500=data2[:3]
second_1500=data2[:7]
third_1500=data2[:11]
#新建一个图形并将其设置为3d
图=plt.figure()
# ###########第一个次要情节# ########
ax=fig.add_subplot(2,2,1,projection=3d )
ax.set_title(3D_Curve1 )
ax.set_xlabel(x )
ax.set_ylabel(y )
ax.set_zlabel(z )
#绘制图形,颜色为r=read
figure1=ax.plot(first_2000,second_2000,third_2000,c=r )
figure2=ax.plot(first_1500,second_1500,third_1500,c=b )
第二个次要情节
ax=fig.add_subplot(2,2,2,projection=3d )
#设置图形信息
ax.set_title(3D_Curve2 )
ax.set_xlabel(x )
ax.set_ylabel(y )
ax.set_zlabel(z )
#绘制图形,颜色为r=read
figure1=ax.plot(first_2000,second_2000,third_2000,c=r )
figure2=ax.plot(first_1500,second_1500,third_1500,c=b )
# ###########第三个次要情节# #######
ax=fig.add_subplot(2,2,3,projection=3d )
#设置图形信息
ax.set_title(3D_Curve3 )
ax.set_xlabel(x )
ax.set_ylabel(y )
ax.set_zlabel(z )
#绘制图形,颜色为r=read
figure1=ax.plot(first_2000,second_2000,third_2000,c=r )
figure2=ax.plot(first_1500,second_1500,third_1500,c=b )
# ###########第四个次要情节# #######
ax=fig.add_subplot(2,2,4,projection=3d )
#设置图形信息
ax.set_title(3D_Curve4 )
ax.set_xlabel(x )
ax.set_ylabel(y )
ax.set_zlabel(z )
#绘制图形,颜色为r=read
figure1=ax.plot(first_2000,second_2000,third_2000,c=r )
figure2=ax.plot(first_1500,second_1500,third_1500,c=b )
plt.show()
主要需要解释下面一行代码:
ax=fig.add_subplot(2,2,1,projection=3d )
这一行代码主要是将当前空间拆分出来创建一个新的子图,有四个子图,排列成2x2矩阵,当前子图是四个子图的第一个,并且是3D模式。
用matplotlib画三维曲线就是这样。总的来说比较简单,没有难度。Python确实是一门非常有用的编程语言。有关如何使用matplotlib的更多信息,请参考他们的官方网站,其中包含相关教程和示例。
学习Python——用matplotlib绘制动态多图
最近经常用matplotlib画数学函数图,但是如何用matplotlib画动态图和动态多图呢?直到今天我才学会。1.首先感谢几篇参考文献的作者。我学会了如何画它们。每个人都可以。
学习python的matplotlib绘制动画(FuncAnimationlparrpar参数)
1.函数funcanimation (fig,func,frames,init _ func,interval,blit)是绘制动画的主要函数,其参数如下:a .绘制动画的fig画布名称b.func自定义。
用python绘制根部轨迹图
最近学了自动控制原理,发现根轨迹都是画图。但是,书上教的是用matlab进行计算机辅助绘图。但是国内基本没有这种用python绘图的资料。后来发现python-control包已经.
用Python matplotlib绘制三维曲线
本文主要演示如何使用matplotlib绘制三维图形代码如下:#-*-编码:UTF-8-*-从mpl _ toolkits中导入matplotlib作为mpl。
[转]使用Python matplotlib绘制股票走势图
转载1。前言matplotlib[1]是著名的python绘图库,提供了一套完整的绘图API,非常适合交互式绘图。本人参与绘制k线等股票数据处理,所以会做matplotlib的.
Matplotlib学习——用matplotlib画箱线图(boxplot)
箱线图按四分位数显示数据的分布。比如数据的中心位置,数据之间的离散程度,有没有异常值等等。将数据从小到大排列,分成四等份,第一个分位数(Q1),第二个分位数(Q2),第三个分位数(Q3)。
【Python环境】matplotlib-2D和3D绘图
2015-10-30自媒体MATLAB API对数据科学最简单的介绍就是从MATLAB API开始,这个API是为了兼容MATLAB绘图函数而设计的。让我们加载它:从pylab导入.
Matplotlib绘制三维地图
本文参考官方文档:http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html开始构建新的matplotlib.figure.Figure对象,
Python教程:matplotlib绘制双y轴曲线
前言中的文字和图片均来自互联网,仅供学习交流,无任何商业用途。版权归原作者所有。如果您有任何问题,请联系我们进行处理。作者:Data Pipixia的双X轴可以理解为共享Y轴ax1=ax.twiny().
随机推荐
邮件系列(QQ邮箱plus带附件的邮箱箱plus项目实战)
平台大势谁能阻挡?带着你的网跑!http://www.cnblogs.com/dunitian/p/4822808.html邮箱系列:https://github.com/duniti.
infopath OpenCurlyDoubleQuote发布的提示;无法解析SOAP消息“lpar无法解析SOAP消息;问题解决方案
最近发现一个列表的数据太大了。每次发布infopath表单都会提示以下错误:后来发现一个infopath表单是通过list.asmx和Formsservice.asmx发布的这个错误.
Groovy模板引擎
1.简介Groovy支持多种动态生成文本的方式,包括GStrings、print.
从键盘输入一个正整数N。请根据杨辉三角形下面的五行输出杨辉三角形的前N行。请使用循环控制语句来实现。
Scanner sc=新扫描仪(system . in);System.out.println(请输入正整数:);int ss=sc . nextint();我.
使用OpenCurlyDoubleQuoteschemalowbarPostgreSQL中的name "
http://timmurphy.org/tag/mysql/http://timmurphy . org/2009/11/17/use-schema _ name-in-PostgreSQL/====.
表格边框美化
在
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。