如何使用 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:在交互模式下设置 link 和 x2tics

    在交互模式下 x2tics 在放大时很快就会消失 这个例子被展示了here https stackoverflow com a 60373156 11769765 set tics nomirror set x2tics set link
  • Gnuplot 不同颜色

    我试图用不同的颜色为绘图和 gnuplot 中的拟合着色 但它不起作用 set ylabel s in m set xlabel t in s unset key set style line 1 lt 2 lc rgb red lw 3
  • gnuplot 中的水平直方图

    我正在尝试在 gnuplot 中绘制水平直方图 这是我当前的垂直 通常类型 直方图 width 0 5 hist x width width floor x width width 2 0 set boxwidth width 0 9 se
  • 使用 Octave 绘图时出现问题

    我刚刚开始使用 Octave 当我启动八度并尝试绘制某些内容时 绘图有效 但我多次重复收到以下警告 warning ft render unable to load appropriate font warning ft render in
  • JavaPlot 和 gnuplot

    我正在拼命地努力让 Java 和 gnuplot 更好地发挥作用 我已经开始使用JavaPlot并将 jar 添加到类路径 使用 Eclipse 我还下载了 gnuplot 并将其放在安全的地方 第一个问题 所有例子都由JavaPlot假设
  • gnuplot - 调整键/图例的大小

    如何调整 gnuplot 4 6 0 中图例的大小 我的意思是线条的大小和not只是字体大小 当我从 pdf 切换到 pdfcairo 终端时 大小突然跳跃并导致关键点与兴趣点重叠 我需要 cairo 来启用 unicode 我刚刚发明的答
  • gnuplot 坐标系之间的转换

    TL DR 有没有办法在多图设置中对齐不同图的角 有没有办法转换axis坐标到screen坐标 详细解释 我正在尝试使用 gnuplot 布局一个相当复杂的画布 为了实现我想要的 我需要将不同的图精确地堆叠在一起 我做了类似的事情 rese
  • 设置图例/图案与堆叠条形图中文本之间的空间

    我有 gnuplot 数据文件 CS 31 73 18 32 20 78 22 88 1 97 1 29 0 90 2 01 FL 43 27 29 45 15 64 6 55 1 64 1 27 2 18 0 00 HB 32 44 20
  • 如何在 gnuplot 中绘制蜘蛛图?

    假设我的数据采用以下形式 atom a b c 43 1 2 1 3 1 4 44 1 2 1 4 1 8 45 1 3 1 8 1 9 46 2 0 2 3 2 4 47 1 5 1 6 1 8 我想要一个像这样的情节http www r
  • 绘制堆叠和聚类的条形图

    如何用 gnuplot 绘制这样的图 The demos http gnuplot sourceforge net demo histograms htmlgnuplot 页面显示了一个类似的示例 这是该页面上的最后一个示例 并生成下面的图
  • 为同一轴上的抽动设置不同的颜色

    是否可以在同一轴上使用不同颜色或样式的抽动 tics 0 1 1 5 2我想要0和2有色red or bold 非常适合multiplots其中有关于相同测量值的图 并且您希望在不同的图中标记 y 或 x 范围 但又不会使其过载太多 现在对
  • 不同功能的样本数量不同

    plot x 3 x 2 5 x 12 是否可以设置x 3只有 2 个样本并且x 2 5 x 12比如说同一个图中有 1000 个样本 这是可以做到的 但不是开箱即用的 第一个变体使用临时文件来保存一个低采样率的函数 并稍后将其与高分辨率函
  • GNUPLOT:点图,数据取决于点大小

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

    如何绘制boxed label具有特定的background颜色 如图例框 你的意思是这样的吗 LABEL label in a box set obj 10 rect at 0 0 size char strlen LABEL char
  • GNUPLOT 绘制 5 天的财务周

    我已经寻找了一段时间 以找出如何从财务图中删除一周中的几天 但没有成功 我需要该图仅包含一周中的几天并完全忽略周末 以便财务图表中没有 2 天的差距 我有 CSV 格式的开盘 低 收盘 高数据 并且缺少周末数据 它绘制得很好 但我找不到如何
  • 使用Gnuplot时,如何在行标题中打印行的方程?

    我使用 Gnuplot 绘制数据以及线性回归线 目前 该行的 标题 其方程由 Gnuplot 计算 只是 f x 但是 我希望标题是回归线的方程 例如 y mx c 我可以通过从绘图信息输出中读取 m 和 c 来手动执行此操作 然后使用新标
  • gnuplot:如何获得正确的数量级?

    这个问题 问题可能与这个话题 https stackoverflow com questions 55130265 inconsistency with gnuplot format specifiers t and t 如果您输入 pri
  • 是否可以在 gnuplot 中设置标签相对于键的位置?

    我的情节的本质是这样的 绝对的标签并不能真正发挥作用 我无法限制 y 中的范围 所以想知道是否有办法将我的标签文本包含在键内或将其相对于键放置 即下面 set term png enhanced size 1024 768 set titl
  • Gnuplot:如何在轴和 pm3d 地图之间有一些空间

    这是我的代码 f x y sin 1 3 x cos 9 y cos 8 x sin 1 9 y cos y 2 x set size square set xrange 5 5 set yrange 5 5 set contour bas
  • 将 gnuplot 嵌入现有 QtWidget 中

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

随机推荐

  • 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