Gnuplot绘图入门2——根据多列文本数据绘制图形

news2024/11/18 14:27:29

Gnuplot绘图入门2——根据多列文本数据绘制图形

Gnuplot绘图入门1以绘制sin(x)的函数图形为例,对Gnuplot进行了简要介绍。这个教程将介绍如何使用Gnuplot对保存在文本文件(.txt、.dat文件)中的数据进行可视化。

将下面的数据复制下了,保存到文本文件中,并命名为myData.dat以供后续使用。

  # x              y                 error
  0.000000000      8.52344856E-02    160.000000    
  0.322214633      0.315360963       160.000000    
  0.644429266      0.660322666       160.000000    
  0.966643929      0.810025394       160.000000    
   1.28885853      0.895393252       160.000000    
   1.61107314       1.07085896       160.000000    
   1.93328786       1.16645670       160.000000    
   2.25550246      0.890256882       160.000000    
   2.57771707      0.467355251       160.000000    
   2.89993167      0.335340381       160.000000    
   3.22214627      -4.83360216E-02   160.000000    
   3.54436088     -0.234565780       160.000000    
   3.86657572     -0.573700428       160.000000    
   4.18879032     -0.930545390       160.000000    
   4.51100492      -1.04824042       160.000000    
   4.83321953     -0.968299508       160.000000    
   5.15543413     -0.829686761       160.000000    
   5.47764874     -0.713711143       160.000000    
   5.79986334     -0.537595809       160.000000    
   6.12207794     -0.256095201       160.000000    
   6.44429255      0.227042556       160.000000    
   6.76650715      0.379589826       160.000000    
   7.08872175      0.726616621       160.000000    
   7.41093636      0.922940135       160.000000    
   7.73315144      0.934689820       160.000000    
   8.05536556      0.938522339       160.000000    
   8.37758064      0.751247168       160.000000    
   8.69979477      0.695001900       160.000000    
   9.02200985      0.440352410       160.000000    
   9.34422398      0.115799539       160.000000    
   9.66643906     -0.290482402       160.000000    
   9.98865318     -0.574512541       160.000000    
   10.3108683     -0.716142476       160.000000    
   10.6330833     -0.979006410       160.000000    
   10.9552975     -0.952903807       160.000000    
   11.2775126     -0.896204770       160.000000    
   11.5997267     -0.819699407       160.000000    
   11.9219418     -0.601184964       160.000000    
   12.2441559     -0.320398450       160.000000    
   12.5663710      8.72830823E-02    160.000000    

先绘制前两列数据。打开Gnuplot,输入

plot "myData.dat" linetype 7 linecolor -1

在这里插入图片描述

“linetype”表示线型,“7”是线型编号,输入文本数据(这里是“myData.dat”)对应红色点线,输入函数名称(如“sin(x)”对应红色实线,可以简写为lt,“linecolor”表示颜色可以简写为lc,颜色编号-1对应黑色,编号7表示红色。对于多列数据,plot命令默认使用前两列绘制图形。绘制的结果如下

在这里插入图片描述

这个x和y的关系很像正弦函数,接下来绘制在图上绘制正弦函数,命令如下:

plot "myData.dat" title "My Data" lt 7 lc -1, sin(x) lc 7 title "Model"

在这里插入图片描述

plot一幅图中绘制多个图形时,用英文逗号隔开每个图形的设置语句就可以绘制多组数据了。

接下来,设置x坐标范围、x和y轴的标签,命令如下:

set xrange [-1:13]  # 设置x坐标范围
set xlabel "t/s"    # 设置x轴标签
set ylabel "Water level in meters"  # 设置y轴标签
replot  # 应用设置

在这里插入图片描述

下面将上图保存为png格式,分别输入如下命令

set terminal png size 800,600  # 将terminal类型改为png,使用“size 800,600”设置图片大小
set output "dataImg.png"  # 设置图片名称
replot  # 将图像保存在dataImg.png中

在这里插入图片描述

得到的dataImg.png如下

在这里插入图片描述

下面开始绘制误差条。先将terminal类型改为原本默认的类型qt(windows默认的好像是wxt),然后使用三列数据绘制误差条。

set terminal qt
replot

plot "myData.dat" using 1:2:($3/1000) title "My Data" lt 7 lc -1 with errorbars, sin(x) lc 7 title "Model"

“using 1:2:($3/1000)”表示使用第1、2和3列的数据绘制误差条,绘制前先将第三列数据除以1000,绘制结果如下

。如果将“using 1:2:($3/1000)”换成“using 1:2:3”,则第三列数据使用原始数据绘图。

在这里插入图片描述

这里给出绘制误差条并保持为png图片的完整程序脚本

set term png size 800,600  # 为了导出png格式图片,设置终端类型为pngcairo(可以简写为png)
set output "b.png" # 绘图后导出名为a.png的图片,这一行和上面一行都要放在plot之前

set xrange [-1:13]  # 设置x坐标范围
set xlabel "t/s"    # 设置x轴标签
set ylabel "Water level in meters"  # 设置y轴标签

plot "myData.dat" using 1:2:($3/1000) title "My Data" lt 7 lc -1 with errorbars, sin(x) lc 7 title "Model" #使用第1、2和3列的数据绘制误差条,绘制前先将第三列数据除以1000

将以上程序保存为b.plt,在命令行运行gnuplot b.plt,就可以得到本文最后绘制的误差条图。

注意,需要在系统终端中运行gnuplot b.plt,而非gnuplot的终端中运行。
在这里插入图片描述

参考

  1. Gnuplot教程1: 基本的绘图技巧,误差条,png输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python高光谱遥感数据处理与机器学习实践技术

目录 第一章 高光谱基础 第二章 高光谱开发基础(Python) 第三章 高光谱机器学习技术(python) 第四章 典型案例操作实践 总结了高光谱遥感技术领域的基础原理与核心概念,采用编程语言复现经典数据处理和应用方法&am…

OpenHarmony应用开发-ArkUI方舟开发框架简析

方舟开发框架(简称ArkUI)为OpenHarmony应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界…

ChatGPT会被人工智能干掉吗?

01 ChatGPT火爆全球 ChatGPT是美国“开放人工智能研究中心”2022年11月30日发布的聊天机器人程序,它是人工智能技术驱动的自然语言处理工具,能通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样…

pcl中MomentOfInertiaEstimation计算有向包围盒

pcl::MomentOfInertiaEstimation 是 Point Cloud Library (PCL) 中的一个类,用于计算点云中物体的矩。它可以提供点云物体的三个主轴及其长度,以及物体的惯性矩阵等信息。通过使用 pcl::MomentOfInertiaEstimation 类,可以实现物体形状分析、…

C++类和对象-3

承接上一篇博客中内容,讲述完类和对象中构造函数内容之后,这篇博客我们来讲述类和对象中,析构函数的内容。 目录 1.析构函数 2.拷贝构造函数 3.浅拷贝与深拷贝 1.析构函数 在类和对象的构建当中,类中的对象会通过构造函数来…

Jenkins配置邮箱发送报告

本文以qq邮箱为例 1.下载Email Extension Plugin插件 2.在Manage Jenkins--System,Jenkins Location下配置理员邮件 Extended E-mail Notification 下配置Jenkins SMTP server(邮箱服务)、SMTP Port(邮箱端口)、Cred…

c++学习(day4)

文章目录 一. 友元(friend)1 友元函数1.1 全局函数作为友元函数1.2 类的成员函数作为友元函数(了解) 2. 友元类3. 使用友元的注意事项 二. 常成员函数和常对象(const)1. 常成员函数2. 常对象3. mutable关键…

【微服务笔记17】微服务组件之Gateway实现动态路由、配置路由规则、路由过滤器

这篇文章,主要介绍微服务组件之Gateway实现动态路由、配置路由映射规则、路由过滤器。 目录 一、动态路由配置 1.1、动态URI路由配置 (1)引入eureka客户端依赖 (2)添加路由配置 1.2、服务名称转发配置 二、断言配…

基于 Windows 安装 ESP32 Arduino 软件开发环境

ESP32 Arduino 源码库:arduino-esp32ESP32 Arduino 环境搭建说明:About Arduino ESP32 其他软件环境需求: Git 环境 1、安装 Arduino 软件 可在 Arduino 官网 获取 Windows 端 Arduino 安装包,如下: 使用如下 .exe 一…

JVM类加载过程

文章目录 1、加载2、链接2.1 验证2.2 准备2.3 解析 3、初始化3.1 类初始化练习3.2 懒汉式单例练习 4、类加载器4.1 启动类加载器4.2 扩展类加载器4.3 双亲委派模式4.4 线程上下文类加载器4.4 自定义类加载器 5、运行时优化5.1 即时编译逃逸分析方法内联(Inlining&am…

StressAppTest的简介

StressAppTest的全称是Stressful Application Test (stressapptest) 的简称http://code.google.com/p/stressapptest/ 这里我们可以将其简化为SAT。 SAT试图让来自处理器和I/O到内存的数据尽量随机化,以创造出模拟现实的环境来测试现在的硬件设备是否稳定。 SAT的大概作用如…

【Mysql 学习笔记】

Mysql 笔记记录 MySQL学习笔记一、 DDL1. DDL 查询和创建数据库2. DDL 修改、删除、使用数据库3. DDL 查询数据表4. DDL 创建数据表5. DDL 修改数据表6. DDL 删除数据表 二、DML MySQL学习笔记 一、 DDL 1. DDL 查询和创建数据库 #查询所有数据库 SHOW DATABASES; #查询某个数…

PMP项管2023年5月的备考准备攻略!现在看还来得及!

2023年共有4次PMP考试,分别是3月、5月、8月、11月,由于3月份考试不开放新报名,所以第一次备考PMP的同学可以选择参加5月份考试。那么,现在备考5月份PMP考试还来得及吗? 现在开始备考5月PMP考试,时间是非常…

蓝牙技术|消息称三星正研发智能戒指Galaxy Ring

根据韩媒 MT 报道,三星内部正在开发继 Galaxy Watch、Galaxy Fit 之后的另一款健康追踪设备 Galaxy Ring。 报道称这款智能戒指配备 PPG(光电容积脉搏波)传感器和 ECG(心电图)传感器,可以准确追踪佩戴者的…

云智慧助力MLOps加速落地

背景 随着数字化和计算能力的发展,机器学习(Machine Learning)技术在提高企业生产力方面所涌现的潜力越来越被大家所重视,然而很多机器学习的模型及应用在实际的生产环境并未达到预期,大量的ML项目被证明是失败的。从…

云计算中的网络安全技术及其应用

云计算已经成为当今企业信息化的主要选择之一。它提供了可靠的数据存储和处理能力,同时降低了企业的IT成本。然而,云计算的安全问题也随之而来。网络安全技术的应用对于保护云计算的安全至关重要。本文将探讨云计算中的网络安全技术及其应用,…

Golang每日一练(leetDay0041) 股票买卖4题

目录 121. 买卖股票的最佳时机 🌟 122. 买卖股票的最佳时机 II 🌟🌟 123. 买卖股票的最佳时机 III 🌟🌟🌟 188. 买卖股票的最佳时机 IV 🌟🌟🌟 🌟 每…

2023第六届世界燕窝及天然滋补品博览会

2023上海燕窝展|上海燕博会|虫草节、鱼胶、灵芝、海参、滋补品展|滋补大会 摘要:燕博会、上海燕窝展、上海燕博会、2023上海燕博会、2023上海燕窝展、2023中国燕窝展、2023燕窝展,2023原装进口燕窝展,2023干制燕窝展,2023即食燕窝展,2023燕窝…

前端开发中有哪些常用的数组操作方法?

javascript数组 简介 JavaScript 数组用于在单一变量中存储多个值。 JavaScript数组是无类型的,数组元素可以是任意类型,并且同一个数组中元素类型也可以不同。 实例 var cars ["Saab", "Volvo", "BMW"];什么是数组&…

探索【Stable-Diffusion WEBUI】的插件:画布扩绘(Outpaint)

文章目录 (零)前言(一)局部重绘(Inpaint)(二)画布扩绘(Outpaint)(2.1)图片画布扩大(插件:OpenOutpaint&#x…