Gnuplot 4.6 中的图例修改

Posted

技术标签:

【中文标题】Gnuplot 4.6 中的图例修改【英文标题】:Legend Modification in Gnuplot 4.6 【发布时间】:2021-11-30 22:09:06 【问题描述】:

大家好,*** 用户,

我已经为以下问题坐了几天,需要您的帮助。 我想为我的论文创建一个情节,它应该类似于嵌入情节。

线型等都没有问题。 但是,我想在我的情节中创造一个类似的传说。我什至不知道要搜索什么关键字。我从我发现的其他 *** 帖子中尝试了一些东西,但没有提供足够的结果。

【问题讨论】:

欢迎来到 SO!能否请您添加“其他帖子”的链接,以便我们跟踪您的搜索? @Arthy 您的数据看起来如何?是一个文件有 8 列数据还是几个文件有一定数量的列?请说清楚。现有(不一定有效)代码和典型数据示例总是有帮助的。 @Arthy 你能澄清一下图例修改是什么意思吗?如果我理解正确,您想要一个 3 列图例? 【参考方案1】:

问得好,但我不知道有什么好的方法来制作您要求的图例类型。 使用set keymaxrows 选项可以很容易地实现行和数字(可以说是表格的“主体”)。

但真正的挑战是列标题。在 gnuplot 中,关键条目总是由绘图样式(线、点...)的样本和文本字符串构建的。我首先尝试通过keyentry 添加列标题,但是,这不会在绘图样本所在的位置提供任何字符串。我只能建议一个解决方法:将表体构建为键,并使用手动放置的label 添加列标题。

array numbers[4] = [0.60, 0.64, 0.68, 0.70]
set key t r maxrows 4 vertical width -5 at graph 0.95, 0.9
set label 1 '/:Italic t/ms Flamelet DNS  ' at graph 0.95,0.925 r
plot for [i=1:4] i*x w l lc i t sprintf('%.2f', numbers[i]), for [i=1:4] i w p lc i t ' '

假设您在论文中使用 LaTeX,您当然可以将标签中的格式替换为 LaTeX 语法:set label 1 '$t$/ms ...。 在您对结果满意之前,很可能需要多次微调空间的数量。

但也许其他人有更好的、不那么“hacky”的解决方案?

PS:数组需要 gnuplot >= 5.2,在 4.6 中,您可以改用一串数字并将其拆分为 word(),但是,这对方法没有影响。反正你可以考虑更新一下,目前的稳定版本是5.4。

【讨论】:

如您所说,数组已在 gnuplot 5.2 中实现,但在 gnuplot 4.6 中不可用(请参阅 OP 的问题标题)。但在 gnuplot 版本 word() 完成。 @theozh 好的,谢谢,我添加了关于word() 的评论。无论如何,它不会使最初的问题变得更好或更糟:-)

以上是关于Gnuplot 4.6 中的图例修改的主要内容,如果未能解决你的问题,请参考以下文章

Gnuplot:如何绘制最大值和/或最小值

gnuplot 千百万米微纳米微微中的后缀符号

通过 c 中的管道而不是文件将数据数组传递给 gnuplot

torch7 gnuplot 包中的错误? (Ubuntu 16.04)

在 Octave 中为 Gnuplot 启用“线条样式”功能?

从 C 中使用 gnuplot