【问题标题】:Gnuplot error (label has coord of 0) for histogram with logscale对数刻度直方图的 Gnuplot 错误(标签坐标为 0)
【发布时间】:2014-11-03 14:50:08
【问题描述】:

我正在尝试使用 Y 对数刻度绘制直方图。这是我的代码:

input_file  = "io_time.dat"
output_file = "io_time.eps"
set terminal postscript eps size 4.0,3.5 enhanced color font "Helvetica,18" solid
set output output_file
set style data histogram
set style histogram cluster errorbars gap 1
set boxwidth 0.8
set logscale y
set ylabel 'I/O Duration (sec)'
set xtics mirror rotate by 45 right
plot input_file u 2:3:4:xtic(1) notitle fs pattern 1 lt 1

我收到以下错误:

"io_time.gp", line 11: label has y coord of 0; must be above 0 for log scale!

虽然看起来与数据文件的内容无关,但这个数据文件(io_time.dat)包含4列:第一列是每个框的标签,第二列是框的高度(所有值都> 0 ),第 3 列和第 4 列包含 ylow 和 yhigh 值(也 > 0)。

我在 Mac OS X 10.7.5 上使用通过 MacPort 安装的 gnuplot 4.6 patchlevel 5。

知道如何解决这个问题吗?

编辑:经过调查,我的 $HOME/.gnuplot 配置文件中的一行似乎导致了问题:

set label  textcolor rgb text_color font my_font

text_color 和 my_font 前面定义如下:

text_color = "#000000"
my_font = "Helvetica, 18"

这里还有一个示例数据文件:

A       50.79841091632843       36.28489899635315       69.23793005943298
B       0.11200199127197266     0.032312870025634766    0.42415809631347656
C       0.10992197990417481     0.0323939323425293      0.41459178924560547
D       0.10762600898742676     0.03207087516784668     0.39806699752807617
E       0.03831331729888916     0.03720998764038086     0.04118704795837402
F       0.043952775001525876    0.04250597953796387     0.04720902442932129
G       0.03883504867553711     0.03631401062011719     0.04176783561706543

【问题讨论】:

  • 嗨!在 linux 上运行 v4.6 patchlevel 3,我从你的脚本中得到了预期的输出。此外,我在我的数据文件中添加了一行零,但 gnuplot 不在乎:留下新记录的空间并打印标签,但没有绘制框(当然),也没有打印错误消息。看起来数据文件确实无关紧要。你如何运行这段代码?可能是,一些旧设置是问题所在。
  • 我只是运行“gnuplot io_time.gp”。我的 $HOME 中有一个 .gnuplot 文件来配置一堆东西,但从来没有遇到过任何问题(过去我一直在许多其他类型的图中使用对数刻度,但我不记得曾经尝试过带有直方图)。它在我工作的电脑上,所以我明天会检查它(如有必要,将其发布)。
  • 那么请同时发布一个最小数据集,以便重现您遇到的错误。
  • 好的,我添加了一些精度(问题似乎来自我的 .gnuplot 文件中的一行)和一个最小的数据集。

标签: gnuplot


【解决方案1】:

所以您基本上已经找到了问题的根源:您设置了一个标签而没有给出明确的坐标,在这种情况下使用0,0。这不适用于对数刻度。由于标签只有在你plot时才放,所以plot命令的行号会报出来。

顺便说一句:为什么在配置文件中设置一个空标签?

【讨论】:

  • 我不知道,我从一个网站上拿了这个配置文件,以增强我的情节。同一行用于 xlabel 和 ylabel、x2label 和 y2label。我猜配置文件的作者想要设置所有标签的颜色和字体,然后让 gnuplot 脚本定义(或覆盖)标签应该具有的任何其他参数,无论是否真的有标签要绘制。跨度>
猜你喜欢
  • 1970-01-01
  • 2011-12-16
  • 2020-10-07
  • 2022-01-20
  • 2021-11-11
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多