Gnuplot 工作流程涉及多重绘图的拟合循环

2023-12-13

我想在 gnuplot 中执行以下操作: 读取我的文件,这些文件被方便地标记为“filenameN.txt”,其中 N 是第 N 个文件。

使用 aN、bN、... 将一些多项式 fN(x) 拟合到数据中 并使用 multiplot 将所有这些绘制在单个图形(多个图)中

但是,我无法使用 gnuplot 中可用的循环来使其工作。 有效的方法是例如创建一个文件,该文件执行我想要的 N,然后运行一个传递 N=1...M 的外部循环。

这会产生 M 个图,但不会产生单个多重图。

为此,我需要为拟合分配具有变量名称(f1,f2,... a1,a2,...,...)的变量(因为我可能想以某种方式将它们全部一起使用)

我还希望绘图循环在多重图中生成简单的绘图(每个绘图包含数据及其拟合,M 次),而不是第一个绘图包含所有行,其余绘图为空的多重绘图。

所以我有两个问题:

  • 如何分配变量变量名
  • 如何在多图布局中使用循环

您可以根据 N 定义函数,例如:

fstr(N) = sprintf('f%d(x) = a%d*x**2 + b%d*x + c%d', N, N, N, N)
eval(fstr(1))

这定义了函数f1(x) = a1*x**2 + b1*x + c1。对于拟合函数,您必须执行相同的操作:

fitstr(N) = sprintf('fit ''filename%d.txt'' f%d(x) via a%d,b%d,c%d', N, N, N, N, N)

然后你首先做所有的配合:

do for [i=0:N] {
    eval(fstr(i))
    eval(fitstr(i))
}

然后绘制每个数据文件with points以及相应的拟合with lines。为了将所有图绘制在一张图中,您必须使用一个plot命令并用逗号分隔图。

但是为了将拟合和数据分组到键中,您可以使用replot添加绘图。并且你必须使用macros为了得到图中正确的函数,eval在这里不起作用:

set style data points
set style func lines
plot 'filename0.txt' lt 1, f0(x) lt 1
set macros
do for [i=1:N] {
    f = sprintf('f%d(x)', i)
    replot sprintf('filename%d.txt', i) lt (i+1), @f lt (i+1)
}

只需将所有内容放在一个文件中并使用它运行 gnuplot 即可。

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

Gnuplot 工作流程涉及多重绘图的拟合循环 的相关文章

  • 在Python中退出while循环[重复]

    这个问题在这里已经有答案了 在下面的代码中 我想要while循环退出一次a b c 1000 然而 测试与print声明显示它只会持续到for循环完成 我试过了while True然后在if语句集False但这会导致无限循环 我想用x 0然
  • Scalaz 7 Iteratee 处理大型 zip 文件(OutOfMemoryError)

    我正在尝试使用 scalaz iteratee 包在恒定空间中处理大型 zip 文件 我需要对 zip 文件中的每个文件执行一个长时间运行的进程 这些进程可以 并且应该 并行运行 我创建了一个EnumeratorT使每个膨胀ZipEntry
  • 在 C++ 中,为什么我们不能使用 > 和 < 来比较迭代器? [复制]

    这个问题在这里已经有答案了 我被问过这个问题 我真的不知道为什么 如果你有指针int x 您可以将指针与 gt and lt 因为它代表内存位置 例如0x0000 0x0004 0x0008等等 我知道迭代器和指针是不同的 但它们的行为方式
  • 如何一次运行多个后台线程任务?

    我正在尝试循环遍历包含 2016 年 10 月日期的 String 对象数组 这意味着 31 个 String 对象 2016 年 10 月 1 日 2016 年 10 月 31 日 对于每个对象 我想从数据库检索一些数据并附加返回值 也是
  • 将用户定义的函数应用于数据框列表

    我有一系列结构与此类似的数据框 df lt data frame x c notes year 1995 2005 y c NA value 11 21 df2 lt data frame x c notes year 1995 2005
  • 将选择结果(一列)拆分为多列

    我一直在努力找出如何实现这一目标 但我认为我一开始就没有能力知道要寻找什么 我正在使用现有系统 我无法更改数据库架构 也无法规定用户如何输入数据 我必须利用我们现有的资源来工作 目前 我们的用户正在将统计数据放入表中的一个文本字段中 他们使
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • Javascript 循环内的事件处理程序 - 需要闭包吗?

    我正在使用一些我从别人那里接管的 html 和 Javascript 代码 该页面每十秒重新加载一个数据表 通过异步请求 然后使用一些 DOM 代码重新构建该表 有问题的代码看起来像这样 var blah xmlres getElement
  • 在循环中使用 if 语句? - 加工

    假设我必须在 for 循环中使用 if 语句 并且 for 循环在特定条件下触发 而 if 语句仅在 for 循环达到特定阶段时触发 例如 条件是一个计数器 当发生特定事件 例如球从屏幕上掉下来 时 该计数器会进行计数 每次球穿过屏幕时 都
  • 通过链接导航多个对象而不重复

    我正在尝试浏览一堆带有其他对象链接的对象 我想从 id 1 开始并浏览每个对象 有些对象会循环回到之前的对象 所以我想确保每个对象只查看一次 否则我会陷入无限循环 我还希望能够通过链接导航来判断哪些对象无法访问 我认为导航顺序并不重要 这是
  • Bash 中单行 while 循环的语法

    我无法找到分号和 或大括号的正确组合 我想这样做 但作为命令行中的一句 while 1 do foo sleep 2 done while true do foo sleep 2 done 顺便说一句 如果您在命令提示符下将其输入为多行 如
  • Python,将迭代函数变成递归函数

    我创建了一个输出 4 3 2 1 0 1 2 3 4 的迭代函数 def bounce2 n s n for i in range n print n n n 1 if n lt 0 for i in range s 1 print n n
  • 用Python中的嵌套for循环替换重复的if语句?

    在我编写的下面的代码中 n 4 所以有五个 if 语句 所以如果我想将 n 增加到 比如说 10 那么就会有很多 if 语句 因此我的问题是 如何用更优雅的东西替换所有 if 语句 n p 4 5 number of trials prob
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • Preg_replace的效率

    执行摘要 preg replace 比字符串比较运行得更快 为什么 正则表达式不是应该更慢吗 In a 最近的问题 https stackoverflow com questions 3487781 php check string for
  • 正确地将 for 循环转换为并行循环

    我这里有这个数据集 例如 学生在几年内多次参加考试 要么通过 要么失败 我有兴趣研究上一次测试对下一次测试的影响 id sample int 10000 100000 replace TRUE res c 1 0 results sampl
  • 在gnuplot中绘制两点之间的线

    我有一个 csv 文件 其格式如下 有四列 作为MWE xcoord1 ycoord1 xcoord2 ycoord2 0 1 0 2 0 4 0 3 0 5 0 3 0 7 0 5 我想从每个xcoord1 ycoord1 to xcoo
  • gnuplot - 带有 histeps 的直方图连接条

    这是我正在使用的代码的最小工作示例 bin bash gnuplot lt lt EOF set term postscript portrait color enhanced set encoding iso 8859 1 set out
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 如何在 MATLAB 中定位子图?

    我在设置子图的位置时遇到问题 我在循环内使用子图 但是当我尝试对子图进行特殊定位时 它不起作用 这是我的代码 h subplot 2 2 3 set h position 0 15 0 15 0 4 0 4 plot d3 S3 Color

随机推荐

  • 带刻面的堆叠条的反向填充顺序

    我不知道如何反转填充顺序 基本上 我试图让指南和填充匹配单词从正到负的内在顺序 指南和填充顺序从上到下应该是 比我预期的要好得多 填充在最顶部 图例的顶部 比我预期的要好一点 关于我的预期 比我想象的差一点 比我预期的要糟糕得多 填充在最底
  • 查看SQL Server数据库对象列表时如何识别系统对象?

    我试图列出服务器上所有数据库中的所有存储过程 但我似乎无法可靠地过滤掉系统对象 我正在使用 SELECT FROM sysobjects WHERE id gt 100 这似乎在除 MSDB 之外的每个数据库中都运行良好 MSDB 充满了大
  • 如何使用经典蓝牙代替 LE

    在参照丹尼斯 马修斯的回答如何在 iOS 上指定经典蓝牙而不是 LE 是否有不同的 api核心蓝牙框架 Joels 有一种非常清晰的方法可以在 iOS 上使用经典蓝牙 它具有外部附件框架 但是 除了经典蓝牙之外 它还包括直接硬件连接 您需要
  • 有效使用 UncaughtExceptionHandler

    我最近了解了 Java 1 5 的这个功能 并开发了一个示例代码来使用它 我的目标是当线程由于未捕获的异常而死亡时重新启动线程 public class ThreadManager public static void main Strin
  • 为什么标签小部件中的文本周围出现难看的大括号? - Tkinter

    我的标签小部件中的文本周围有大括号 输出是 Total tries 0 代替Total tries 0 这是我的代码的简短版本 class Cell def check self mem tries 1 mem update tries c
  • UISearchController更新搜索结果问题

    我的问题是我已经实施了UISearchController在 Swift 3 中 当我尝试过滤它时 它很容易过滤简单数组 但我的情况有点不同 我有一个数组 我从中获取所有数据SQLite database在类中 所以它是类的数组 manag
  • 断开各个对等点与 MCSession 的连接?

    如果我有一组已连接的对等点 假设有 3 个 a gt b a gt c a gt d 我只想断开对等点 c 的连接 我应该做什么 我看到对类似问题的一个答复指出 您只能断开 您自己 与会话的连接 这意味着在上述情况下 如果我这样做 mySe
  • 在 MATLAB GUIDE 中显示大型文本文件的最佳方式是什么?

    如何使用 MATLAB GUIDE 控件在 GUI 中显示文本文件的内容 文本文件可能很长或很宽 因此它应该能够具有垂直和水平滚动条 多行编辑框可能是显示文本的最佳选择 例子 read text file lines as cell arr
  • 函数可选参数DATE类型失败

    我有一个函数可以查找下周一的日期 当没有传递可选日期参数时 它将变为默认值零 我想我已经添加了注释来解释问题 Function NextMondayFromADateOrToday Optional StartDate As Date As
  • 如何沿矩阵轴执行滚动求和?

    给定矩阵X with T行和列k T 50 H 10 k 5 X np arange T reshape T 1 np ones T k 如何执行滚动累积和X沿着行轴有滞后H Xcum np zeros T H k for t in ran
  • 如果我不“删除”会发生什么? [复制]

    这个问题在这里已经有答案了 如果我在执行期间分配一些内存但从不调用会发生什么delete程序终止 操作系统会释放我分配的所有内存并且不会 浪费 任何内存吗 或者在计算机重新启动之前我会丢失一部分内存吗 显然 我知道良好的编码实践是确保删除不
  • XSLT:多次复制对象 xml,同时递增属性和值

    我有一个如下所示的 xml 我想复制 n 次 同时递增其元素之一和属性之一 XML 输入
  • XNA 处理按键组合

    我已经阅读了一些涉及此问题的文章 但是在尝试实施一些之后 总是遇到同样的问题 快速说明 这是家庭作业 我正在使用 XNA 为我的游戏设计课程重新创建 Super Smash Brothers N64 风格 现在我有两个问题密切相关 熟悉 S
  • Maven 依赖项在 WEB-INF/lib 中不可见

    我在使我的项目基于 Maven 时遇到了这个奇怪的问题 我创建了一个新的Maven在 Eclipse 中创建项目并启用动态 Web 方面 但在运行时现在它会抛出ClassNotFoundException因为 Maven 依赖项没有复制到W
  • 子查询上的 GROUP_CONCAT 的奇怪结果

    在子查询上使用 GROUP CONCAT 时 我有一个奇怪的行为 这是我的查询 SELECT name GROUP CONCAT DISTINCT id SEPARATOR AS id FROM SELECT APN AS name GRO
  • 如何转换为模板类型?

    在 gdb 中 如果你有一个指向某个东西的指针 你可以在打印它之前对其进行转换 例如 这有效 print int 0xDEADBEEF 但是 如何打印std vector
  • 为什么 Map 不能在 chrome/node 中进行子类化?

    所以 ES 6 给我们带来了Maps 而且不会太快 为了实现我自己的邪恶目的 我希望对 Map 进行子类化 我尝试了以下操作 为了清楚起见 进行了缩写 function Foo return Map apply this slice cal
  • 添加突出显示不适用于 Elasticsearch 2.3.3 中的 has_child 查询

    当我使用 hasChildQuery 时 一切正常 但是当我添加addHighlightedField 方法 它不起作用 以下是我的代码 TermsLookupQueryBuilder terms QueryBuilders termsLo
  • 从 Angular 中的自定义表单组件访问 FormControl

    我的 Angular 应用程序中有一个自定义表单控制组件 它实现了ControlValueAccessor界面 但是 我想访问FormControl实例 与我的组件关联 我正在使用反应式形式FormBuilder并使用提供表单控制formC
  • Gnuplot 工作流程涉及多重绘图的拟合循环

    我想在 gnuplot 中执行以下操作 读取我的文件 这些文件被方便地标记为 filenameN txt 其中 N 是第 N 个文件 使用 aN bN 将一些多项式 fN x 拟合到数据中 并使用 multiplot 将所有这些绘制在单个图