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

大家好,stackoverflow 用户,

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

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

【问题讨论】:

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

标签: split gnuplot legend


【解决方案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() 的评论。无论如何,它不会使最初的问题变得更好或更糟:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 2017-06-19
相关资源
最近更新 更多