如何使用 Gnuplot 在一个图中绘制代表数据集中多个子集行的多个图表?

2024-05-04

我有一个数据集,其名称为('output.txt'),格式如下:

    1   ......
    2   ......
    4   .....
    6   ......
    7   .....
    10   ......
    1   ......
    2   ......
    5   .....
    6   ......
    7   .....
    1   ......
    3   ......
    4   .....
    6   ......
    7   .....
    10   ......
.
.
.
.
.
.
    2   ......
    4   .....
    6   ......
    7   .....
    10   ......

我想在其自己的彩色图表中绘制行的每个子集(直到我达到 x+1 的值小于 x 的值),并将所有图表绘制在一个图中。我如何使用 Gnuplot 来做到这一点?


从不完整的示例数据来看,每个块的 x 值似乎都不相同,甚至每个块的 x 值数量也不相同。 如果是常规的,例如每个块始终有 6 个值,您可以简单地使用plot for and every, check help plot for and help every。但在你的情况下这并不正常。

为了用不同的颜色绘制每个“块”,您必须告诉 gnuplot 块的结束位置。通常这是通过一个或多个空行来完成的。 不幸的是,块之间没有空行,因此您必须自己插入它们。通过外部工具或 gnuplot 本身(后者将需要几行额外的代码)。这里需要将数据存储在数据块中。如何将文件放入其中,请参阅(gnuplot:将数据文件 1:1 加载到数据块中 https://stackoverflow.com/q/54600172/7295599)

第二种方法(如果您想使用线点绘制)是使用点绘制两次,然后使用线条绘制两次,其中每次当前 x 值小于前一个值时颜色都会更改。为了在块之间进行分割,颜色设置为不可见(myLineC=-2)。 如果你只想要线条,你可以简单地跳过情节with points。 根据您的具体需求(颜色、键等),可能需要进一步微调。

Code:

### split data based on x-values
reset session

$Data <<EOD
    1   0.11
    2   0.12
    4   0.13
    6   0.14
    7   0.15
    10  0.16
    1   0.21
    2   0.22
    5   0.23
    6   0.24
    7   0.25
    1   0.31
    3   0.32
    4   0.33
    6   0.34
    7   0.35
    10  0.36
    2   0.41
    4   0.42
    6   0.43
    7   0.44
    10  0.45
EOD

# first approach by inserting empty lines
set title "Approach 1"
set print $DataSplit
    x0=NaN
    do for [i=1:|$Data|] {
        x1 = real(word($Data[i],1))
        if (x1<x0) { print "\n" }
        x0 = x1
        print $Data[i]
    }
set print
plot $DataSplit u 1:2:(column(-1)+1) w lp pt 7 lc var notitle, \

pause -1 "Press Enter to continue"

# second approach by setting the color invisible to split
set title "Approach 2"
myColor = 1
x0=NaN
plot $Data u ((x0>$1 ? (myColor=myColor+1,myLineC=-2) : myLineC=myColor), x0=$1):2:(myLineC) w l lc var notitle, \
    tmp=(x0=NaN, myColor=1) $Data u (($1<x0 ? myColor=myColor+1 : 0), x0=$1):2:(myColor) w p pt 7 lc var notitle
### end of code

Result:(两次结果相同)

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

如何使用 Gnuplot 在一个图中绘制代表数据集中多个子集行的多个图表? 的相关文章

  • gnuplot 热图颜色范围

    我的文件中有一些 X Y Z 数据 我正在使用 gnuplot 来显示它 我正在创建一个热图 即 使用颜色呈现 Z 值的 2D 图 现在我正在使用以下脚本 set palette defined 0 blue 1 red plot xyz
  • 如何在 C++ 中使用 gnuplot?

    我想用 C 程序生成的 x y 点绘制一些图形 我可以从终端通过 gnuplot 命令成功绘制这些数据 但我想从 C 程序中绘制同样的东西 这在 ubuntu 16 04 lts 中可能吗 当然 只需使用标准包命令安装 gnuplot su
  • gnuplot 坐标系之间的转换

    TL DR 有没有办法在多图设置中对齐不同图的角 有没有办法转换axis坐标到screen坐标 详细解释 我正在尝试使用 gnuplot 布局一个相当复杂的画布 为了实现我想要的 我需要将不同的图精确地堆叠在一起 我做了类似的事情 rese
  • GNUPLOT:从平滑累积中保存数据

    我绘制了实数均匀随机分布 n 1000 的简单累积和直方图 http www filedropper com random1 1 http www filedropper com random1 1 随机1天 宏是 unset key cl
  • 使用循环在 Gnuplot 中生成绘图

    我想使用 Gnuplot 生成几个图 这就是我需要使用循环的原因 数据从文件 sort i dat 加载 代码如下所示 但不起作用 我的主循环有一些问题 我不知道为什么它不起作用 也许它与我的 Gnuplot 版本有关 谢谢 do for
  • gnuplot - 彩色刻度线

    有什么办法可以拥有gnuplot为 x 和 或 y 轴上的刻度线着色 我正在使用背景png文件非常暗 我希望内部抽动在其上显示为白色 而不是默认的黑色 The tics似乎继承了它们的颜色border set style line 50 l
  • Macos 上输出中的 gnuplot pdfcairo 未命名 Type 3 字体

    带有 pdfcairo 终端的 Gnuplot 似乎在字体方面给出了奇怪的行为 其中生成的 pdf 具有未命名的 Type 3 字体 以下是 pdffonts 在输出 pdf 文件上的输出 name type encoding emb su
  • 完全忽略Gnuplot中的某些数据行

    我想使用 Gnuplot 绘制一种数据透视图 所以我需要忽略文件中的一些数据行 我尝试了以下方法 unset key set xtics font Times Roman 5 set ytics font Times Roman 5 set
  • gnuplot:在 y 轴上绘制 4 列的文件

    我有一个包含 4 个数字 最小值 最大值 平均值 标准差 的文件 我想用 gnuplot 绘制它 Sample 24 31 29 0909 2 57451 12 31 27 2727 5 24129 14 31 26 1818 5 0419
  • gnuplot 与 iOS

    这里有人有在 iOS 上使用 gnuplot 的经验吗 我想在 iOS 设备上开发一个科学计算应用程序 并想使用 gnuplot 作为绘图引擎 有什么好的教程可以让我开始学习吗 我有同样的一般问题 快速的谷歌搜索让我找到了以下应用程序 它似
  • GNUPLOT:点图,数据取决于点大小

    我正在尝试绘制由 3 个坐标组成的数据集 X 坐标 x 坐标和出现次数 例子 1 2 10 3 1 2 3 2 1 我想在 x y 处为每条线画一个点 其直径取决于第三个值 Gnuplot 可以做到这一点吗 创建具有可变点大小的二维图 看t
  • gnuplot 直方图上 Y 轴和条形之间的空间

    我有这样的 gnuplot 脚本 set term pos eps set style data histogram set style histogram clustered gap 1 set grid y set boxwidth 0
  • GNUPLOT 每个直方图条具有不同的颜色

    我想可视化位图文件的不同颜色的数量 我的数据表如下所示 1 163073164 4 185122087 3 255242000 8 255255255 3 000162232 1 181230029 1 127127127 1 136000
  • 如何在顶部显示中线

    我有一个正在运行的方便脚本ab然后生成情节 然而有一个问题 它向我显示了每一点 这很好 但是我还想看到它们之间的平均 线 我会在图中展示更多 那么有没有办法在上面添加中 中游侠呢 Script usr local bin gnuplot s
  • gnuplot - 两个图的交集

    我在用gnuplot绘制来自两个单独的 csv 文件的数据 在此链接中找到 https drive google com open id 0B2Iv8dfU4fTUZGV6X1Bvb3c4TWs https drive google com
  • 如何修改 GNUPlot 创建的饼图

    Input 我有一个myfile csv包含以下信息的文件 Shift Percentage Day Shift 39 94 Night Shift 60 06 GNU绘图处理 The myfile csv文件被送入pie chart ge
  • 我应该如何格式化 .dat 文件以便制作 3D 矢量图?

    我正在为大学做这个编程任务 我们必须写一个c 计算 3D 空间中某些线圈的磁场矢量的程序 我已经成功编写了这个程序 并且我认为它运行得很好 不过 我想添加一个特殊的东西 这是我的试卷 所以它必须特别好 我想绘制出向量 我习惯打电话gnupl
  • 以不同的采样率绘制两个函数

    我想绘制两个函数 sin x 和采样并量化的 sin x 脚本很简单 set xtic 1 set ytic 1 f1 x sin x 16 2 pi 8 round x x floor x lt 0 5 floor x ceil x pl
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • Gnuplot:Logscale 似乎把事情搞砸了

    我放入了对数刻度 它弄乱了网格线的绘制 主要 x 网格线不再与主要 y 网格线具有相同的灰色 它们是次要 x 和 y 网格线的灰色 以下图片显示了这一点 关于如何解决这个问题有什么想法吗 Thanks usr bin env gnuplot

随机推荐

  • Java 中非 ASCII 字符的 URL 解码

    我正在尝试用 Java 解码包含 编码字符的 URL 我尝试使用 java net URI 类来完成这项工作 但它并不总是正常工作 String test https fr wikipedia org wiki Fondation Alli
  • 媒体查询在 VueJS 样式标签中不起作用

    我正在尝试在 VueJS 组件的样式标签中使用 media media 中的样式始终有效 而不是使用宽度规则
  • 如何使用va_start()?

    在具有可变参数的函数中 我们使用函数 va start 初始化 va list ap 类型的对象 如下所示 void va start va list ap parmN 我不明白1 什么类型的对象可以作为 parMN 最后一个已知参数 传递
  • 在 CakePHP 中访问 Configuration::read 控制器

    我的 CakePHP 应用程序有一个单独的配置文件 该文件加载在 bootstrap php 中 我的问题是 如何访问控制器中的配置变量 IE 如何在控制器中执行Configure read variable 函数 谢谢 在我的自定义配置文
  • 获取 Youtube 上的游戏直播列表

    我正在尝试使用 Youtube 数据 API 来获取当前与游戏相关的直播流列表 但我找不到任何符合我需要的端点并返回每个频道的观看者数量 你们知道我该如何做到这一点吗 Thanks 游戏直播列表 videoCategoryId 20 是 游
  • 如何从 Backbone 集合中提取多个属性?

    我试图从 Backbone 集合中提取多个属性 但它返回undefined 收藏 id 1 name raju age 23 sex male hobbies id 2 name ramesh age 43 sex male hobbies
  • 使用哈希检查具有 $_POST 值的页面是否已刷新

    当将表单发布到同一个PHP页面时 正确的方法是什么来查找页面是否被意外刷新而不是再次提交 这是我现在正在使用的 tmp implode POST myHash md5 tmp if isset SESSION myHash SESSION
  • 输入字段如 stackOverflow 标签输入字段

    我将 primefaces 与 JSF 一起使用 我需要一个输入组件 允许用户在单个输入字段中提交最多 5 个标签 就像 stackOverflow 上的标签输入字段一样 还必须有一个建议标签的功能 当用户开始输入时 因为它在这里可用 我无
  • 仅当元素未分配类时,如何才能选择该元素?

    我正在修改现有 WordPress 主题的 CSS 主题有很多特殊样式的列表 附在 li 元素 正因为如此 有一个通用的list style none规则适用于 li li 元素 我想更新 CSS 以重新设置list style默认开启 l
  • 2010 年的 java 并发修改异常灾难

    绘制一些存储在 ArrayList 中的粒子 这段代码工作正常 super paintComponent g for Particle b particleArr g setColor b getColor g fillOval b get
  • python - lxml:强制执行属性的特定顺序

    我有一个 XML 编写脚本 可以为特定的第 3 方工具输出 XML 我使用原始 XML 作为模板来确保构建所有正确的元素 但最终的 XML 看起来与原始的不同 我以相同的顺序编写属性 但 lxml 按自己的顺序编写它们 我不确定 但我怀疑第
  • $(this) 和 this 有什么区别?

    有人可以解释一下 它们之间有什么区别吗 例如我可以用 that 来做到这一点 var bar button click function if bar this alert same bar this 并且不能使用 that var bar
  • 在 Netlogo 中将函数作为参数传递

    在许多其他编程语言中 您可以将一个函数作为参数传递给另一个函数并从该函数内调用它 无论如何 在 Netlogo 中可以做到这一点吗 比如下面这样 x y z are all ints to report f x y z report x y
  • 在 Python 中计算时间(datetime.timedelta?)

    我相信这对很多人来说都是理所当然的事情 但我发现自己对整个 datetime timedelta 事情感到非常困惑 本质上我在开始时给一些东西加上时间戳startTime然后我为流程结束添加时间戳endTime我试图找出 HH MM SS
  • 制作一个未知大小的数组 C# [重复]

    这个问题在这里已经有答案了 可能的重复 C 中未知长度的数组 https stackoverflow com questions 599369 array of an unknown length in c sharp 我想创建一个程序 用
  • 如何更改 UIImage 的颜色? [复制]

    这个问题在这里已经有答案了 我不想改变图像的背景颜色 而是改变整个图像的颜色 但问题是 我只能改变backgroundColor 接受的答案是正确的 但还有更多easy way for UIImageView Obj C UIImage i
  • AngularJs 位置路径更改,无需重置所有控制器

    我的问题的简短版本是 如何更改 URL 而不需要触发路由更改或不需要运行当前显示页面上的所有控制器 Details 我有一个模板 显示在
  • Android 电子邮件意图和消息正文

    我正在使用意图从我的应用程序启动电子邮件应用程序 我使用意图设置主题 短信和电子邮件地址 除了电子邮件部分中的光标位置之外 一切正常 我的电子邮件信息类似于 感谢您选择 不要写在这条线下面 我在电子邮件正文中看到该消息 但我的光标在 请勿写
  • 索引 getter 中的 IndexOutOfRangeException

    在我的索引属性中 我检查索引是否超出范围 如果是的话 我抛出一个IndexOutOfBoundsException 当我运行代码分析器 在 VS12 中 时 它抱怨 CA1065 意外位置出现意外异常 参考CA1065的描述 仅 Syste
  • 如何使用 Gnuplot 在一个图中绘制代表数据集中多个子集行的多个图表?

    我有一个数据集 其名称为 output txt 格式如下 1 2 4 6 7 10 1 2 5 6 7 1 3 4 6 7 10 2 4 6 7