gnuplot - 两个图的交集

2024-04-14

我在用gnuplot绘制来自两个单独的 csv 文件的数据(在此链接中找到:https://drive.google.com/open?id=0B2Iv8dfU4fTUZGV6X1Bvb3c4TWs https://drive.google.com/open?id=0B2Iv8dfU4fTUZGV6X1Bvb3c4TWs)具有不同的行数,生成下图。

这些数据似乎没有共同的时间戳(第一列)csv文件,但gnuplot似乎符合如上所示的绘图。

这里是gnuplot我用来生成情节的脚本。

# ###### GNU Plot

set style data lines
set terminal postscript eps enhanced color "Times" 20

set output "output.eps"

set title "Actual vs. Estimated Comparison"

set style line 99 linetype 1 linecolor rgb "#999999" lw 2
#set border 1 back ls 11
set key right top
set key box linestyle 50
set key width -2
set xrange [0:10]
set key spacing 1.2
#set nokey

set grid xtics ytics mytics
#set size 2
#set size ratio 0.4

#show timestamp
set xlabel "Time [Seconds]"
set ylabel "Segments"

set style line 1 lc rgb "#ff0000" lt 1 pi 0 pt 4 lw 4 ps 0

plot  "estimated.csv" using ($1):2 with lines title "Estimated", "actual.csv" using ($1):2 with lines title "Actual";

有没有什么方法可以通过忽略绿色图上方的峰值来打印(写入文件)这些图的交集值?我也尝试过执行 sql-join 查询,但出于与我上面解释的相同原因,它似乎没有打印出任何内容。

PS:如果蓝线不接触绿线(即,如果它远低于绿线),我想获取最接近的绿线的值,以便它将是一一对应的(或非常接近)与实际数据集。


也许可以以某种方式强制 Gnuplot 在精细网格上重新插值两个数据集,保存这些辅助数据,然后逐行比较。然而,我认为将这个任务委托给外部工具确实更实用。

这当然不是最有效的方法,但是“惰性方法”可能是读取数据点,将每个数据集解释为 LineString(线段的集合,本质上相当于假设数据点之间的线性插值),然后计算交点。在 Python 中,执行此操作的脚本可能如下所示:

#!/usr/bin/env python
import sys

import numpy as np
from shapely.geometry import LineString
#-------------------------------------------------------------------------------
def load_data(fname):
    return LineString(np.genfromtxt(fname, delimiter = ','))
#-------------------------------------------------------------------------------
lines = list(map(load_data, sys.argv[1:]))

for g in lines[0].intersection(lines[1]):
    if g.geom_type != 'Point':
        continue
    print('%f,%f' % (g.x, g.y))

然后在 Gnuplot 中,可以直接调用它:

set terminal pngcairo
set output 'fig.png'

set datafile separator comma
set yr [0:700]
set xr [0:10]

set xtics 0,2,10
set ytics 0,100,700

set grid

set xlabel "Time [seconds]"
set ylabel "Segments"

plot \
    'estimated.csv' w l lc rgb 'dark-blue' t 'Estimated', \
    'actual.csv' w l lc rgb 'green' t 'Actual', \
    '<python filter.py estimated.csv actual.csv' w p lc rgb 'red' ps 0.5 pt 7 t ''

which gives: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gnuplot - 两个图的交集 的相关文章

  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • 从 systemd bash 内联脚本创建 filename_$(date %Y-%m-%d)

    我正在尝试执行systemd计时器并希望将执行脚本的输出保存在每个日期的文件中 这是我的ExecStart脚本中的 service file ExecStart bin bash c echo date Y m d gt gt home u
  • 将 CSV 文件中的数字数据更改为文本

    下面的查询是抓取数据并创建一个 CSV 文件 我遇到的问题是名为 SPLE 的源在数据库中存储数字为 0 1 50 的数据 然而 在 CSV 中 这些数字被收集在 CSV 中 我希望在创建 CSV 时 这些数字能够代表诸如以下的单词 0 T
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • 无法在 64 位 Linux 上从汇编 (yasm) 代码调用 C 标准库函数

    我有一个函数foo以汇编语言编写 并在 Linux Ubuntu 64 位上使用 yasm 和 GCC 编译 它只是使用以下命令将消息打印到标准输出puts 如下所示 bits 64 extern puts global foo secti
  • PyPI 上的轮子平台约束有什么限制吗?

    是否有任何地方 PEP 或其他地方 声明关于 Linux 轮子上传范围的限制 PyPI http pypi io 应该有 具体来说 上传是否被认为是可接受的做法linux x86 64轮子到 PyPI 而不是manylinux1 x86 6
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那
  • C - 为什么我无法映射较小(256UL 或更小)的内存?

    请告诉我 为什么我的简单应用程序无法映射较小的内存 而且 为什么有这样一个特定的边界 257UL define MAP SIZE 256UL or below fail define MAP SIZE 257UL ok include
  • 从c调用汇编函数

    我试图从 c 调用汇编函数 但我不断收到错误 text globl integrate type integrate function integrate push ebp mov esp ebp mov 0 edi start loop
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • 找出 Linux 上的默认语言

    有没有办法从C语言中找出Linux系统的默认语言 有 POSIX API 可以实现这个功能吗 例如 我想要一个人类可读格式的字符串 即德语系统上的 German 或 Deutsch 法语系统上的 French 或 Francais 等 有类
  • 从 php/linux 获取 pdf 的布局模式(横向或纵向)

    给定一个 PDF 如何使用 PHP lib 或 Linux 命令行工具获取 PDF 的布局模式 或相对宽度 高度 Using http www tecnick com public code cp dpage php aiocp dp tc
  • 用于读取csv写入数组的c++程序;然后操作并打印到文本文件中(已经用 matlab 编写)

    我想知道是否有人可以帮助我 我正在尝试构建一个程序 从 csv 文件中读取大小未知的浮点数大数据块 我已经在 MATLAB 中编写了此代码 但想要编译和分发此代码 因此转向 C 我只是在学习并尝试阅读本文以开始 7 5 19892 4 23
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 使用 Pandas 读取带有额外逗号且没有 quotechar 的 CSV?

    Data from io import StringIO import pandas as pd s ID Level QID Text ResponseID responseText date key 375280046 S D3M Wh
  • 减少每日状态表以仅包含状态更改

    我有一个包含 10 万以上用户的大型每日状态表 5 7 亿行 目前它位于 MySQL 或 CSV 中 该表包含三列 user id status 和 date 理想情况下 我希望将表缩减为一个新表 其中包含每个状态期间的 user id s
  • C++:Linux平台上的线程同步场景

    我正在为 Linux 平台实现多线程 C 程序 其中我需要类似于 WaitForMultipleObjects 的功能 在搜索解决方案时 我发现有一些文章描述了如何在 Linux 中实现 WaitForMultipleObjects 功能
  • 如何在 R 中编写 csv 文件,其中我的输入作为行写入文件?

    这是一个非常简单的问题 令我惊讶的是网上没有例子 我有一个向量 vector lt c 1 1 1 1 1 我想将其写为 csv 作为一个简单的行 write csv vector file myfile csv row names FAL

随机推荐

  • Angularjs 的 $http.get 在 IE11 中只执行一次

    我正在学习 angularjs 作为一个测试项目 我正在轮询返回活动进程 它们的 pid 列表并显示这些的服务器 客户端代码如下所示
  • CodeIgniter 和 AJAX 表单提交

    我正在尝试将从表单提交的数据保存到我的 mysql 数据库中 然后将最后发布的项目添加到 div 列表中来更新 div 元素 现在我只是想得到回复 我并不担心目前的格式是否正确 我的问题是表单不会提交e preventDefault 到位
  • Keras Concatenate TypeError:__init__() 得到参数“axis”的多个值

    我目前正在尝试重新创建 Unet 在需要合并两层输出的 上卷积 部分 我得到了提到的错误 类型错误 init 获得参数 轴 的多个值 喀拉斯版本 2 0 6 张量流 GPU 1 2 1 代码片段 import gzip import os
  • 在 Hibernate 4 中创建会话工厂

    我在 Hibernate 4 中生成会话工厂时遇到问题 在 Hibernate 3 中我简单地做了 org hibernate cfg Configuration conf HibernateUtil getLimsInitializedC
  • 将函数应用于滚动窗口

    假设我有一个很长的清单A我想要计算的值 例如长度 1000 std100 对 即我想计算std A 1 100 std A 2 101 std A 3 102 std A 901 1000 在 Excel VBA 中 可以通过编写例如以下内
  • 如何对具有重复字符的字符串使用 substring 和 indexOf?

    我有以下内容String myString city Denver AND state Colorado 它有重复的 和 我如何检索州名 即科罗拉多州 我尝试了以下方法 String state myString substring myS
  • 如何从控制器运行 symfony 2 run 命令

    我想知道我怎样才能跑交响乐2来自浏览器查询或控制器的命令 这是因为我没有任何可能托管来运行它 并且每个 cron 作业都是由管理员设置的 我什至没有启用exec 因此 当我想测试它时 我必须将命令中的所有内容复制到某个测试控制器 这不是最佳
  • Hive Full Outer Join为相同的Join Key返回多行

    我正在对同一列上的 4 个表进行完全外连接 我想为连接列中的每个不同值仅生成 1 行 输入是 employee1 employee1 personid employee1 name 111 aaa 222 bbb 333 ccc
  • Android:本机线程与主线程同步

    在我的 android 应用程序中 我有一个从本机线程到 Java 代码的回调 需要与主 UI 线程同步 目的是 UI 线程根据从本机线程返回的信息显示选项列表 在用户选择一个选项之前 本机线程需要阻塞 用户选择一个选项后 本机线程读取该值
  • 基于 Q3DScatter 的自定义图表,QCustom3DItem 运行缓慢

    我想制作一个带条形的 3D 图表 条形颜色取决于其大小 两个都Qt 条形图和散点图类型 https doc qt io qt 5 qtdatavisualization overview html接近我正在寻找的东西 我最终创建了一个基于的
  • 将 .odt .doc .ods 文件转换为 .txt 文件

    我想转换所有 odt doc xls pdf文件到 txt files 我想使用 shell 脚本或 perl 脚本将这些文件转换为文本文件 有一个用于 odt 文件和类似文件的程序 odt2txt http packages debian
  • 带 GPU 的 Lightgbm 分类器

    model lgbm LGBMClassifier n estimators 1250 num leaves 128 learning rate 0 009 verbose 1 使用 LGBM 分类器 现在有没有办法通过 GPU 来使用它
  • 将社交登录(使用 Google 登录)添加到现有电子邮件/密码应用程序和数据库的最佳方法是什么?

    我想将谷歌登录集成到已有帐户注册和登录的应用程序中 我遵循了一些 YouTube 教程 现在我的前端可以通过 google 进行工作登录 成功登录后 它会返回一个 JWT 解码后 我会得到一个对象 其中包含电子邮件 姓名 pfp 和其他一些
  • C# 重写实例方法

    所以基本上我有一个对象 它接受实例并将它们添加到列表中 每个实例都使用虚拟方法 创建实例后我需要重写这些方法 我将如何覆盖实例的方法 你不能 您只能在定义类时重写方法 最好的选择是使用适当的Func委托作为占位符并允许调用者以这种方式提供实
  • 确定泛型函数调用了哪个函数

    我想知道如何快速找到特定对象的通用函数调用的特定函数 例子 library spatial data redwood K lt Kest redwood plot K 这不是一个普通的情节 这是一个为Kest 目的 因此 为了调查以找到所使
  • 定义引发异常的 lambda 表达式

    如何编写相当于以下内容的 lambda 表达式 def x raise Exception 以下行为是不允许的 y lambda raise Exception 给 Python 换肤的方法不止一种 y lambda for in thro
  • 在屏幕中间创建可滚动选项卡的最佳方法?

    当您使用个人资料时 Twitter 的移动应用程序在屏幕中间有一个可滚动的选项卡 当您单击屏幕中间的可滚动选项卡时 显示您的个人资料信息等的屏幕上半部分不会改变 推文和回复 媒体 等 我想知道如何创建这个 让一半的屏幕保持不变 然后有改变中
  • boost::uuids::random_generator 和多线程的唯一性

    当我使用单线程生成随机数时 生成的 4M uuid 中没有重复项 但如果我使用两个线程生成每个 1M 我会看到大约 16 20 个重复项 可能是什么原因 class TestUuid public std string GenerateUU
  • History.js 和标头重定向

    我在使用history js 时遇到问题 我不知道如何解决 在我正在开发的网站上 我们使用 History js 在页面之间移动 如果您单击任何链接 history js 就会通过 AJAX 加载 URL 更新 URL 并为内容创建过渡效果
  • gnuplot - 两个图的交集

    我在用gnuplot绘制来自两个单独的 csv 文件的数据 在此链接中找到 https drive google com open id 0B2Iv8dfU4fTUZGV6X1Bvb3c4TWs https drive google com