- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 gnuplot 创建堆叠直方图。今天,其中一列中的所有数据点第一次都为零。这给 gnuplot 带来了问题,正如它现在报告的那样:
All points in histogram UNDEFINED
这是因为我的“using”语句有这样的逻辑:
using ($6>0:$6:NaN)
当整个列包含被忽略的值时,gnuplot 会阻塞。有没有我可以用来让 gnuplot 忽略这个特殊且无害的问题的设置?有时列将为零,这是数据中的有效条件。我希望 gnuplot 能够处理这个问题。
如果我无法让 gnuplot 处理它,我可能不得不使用不同的命令来发布我的绘图以忽略丢失的数据集。除非必须,否则我真的宁愿不做这个改变。
有人有什么建议吗?
编辑(添加绘图脚本和数据文件):
绘图脚本和数据文件在运行时生成,使用模板文件和脚本逻辑的组合来确定最终脚本。这是通过打开 gnuplot 命令的命令管道并将脚本直接提供给 gnuplot 直接提供给 gnuplot。
今天出现此问题是因为图表中的第 6 列今天全为零。这是一件好事(没有一张图片的处理时间超过 60 分钟)。我希望 gnuplot 简单地抑制零值(根据 plotscript 中“绘图”行中的三元运算符),如果所有值都被抑制,则直方图的该列没有数据。正常且符合预期;除了 gnuplot 不喜欢它。
剧情:
set terminal 'pngcairo'
set key center under horizontal font ",8"
set style data histogram
set style histogram rowstacked
set style fill solid 1.0
set boxwidth 0.5 relative
set xtics border in scale 0.5,0.25 nomirror rotate by 45 font ",8" offset character -2, -1, 0 right
set xtics autofreq norangelimit
set ytics border in scale 0.5,0.25 nomirror norotate font ",8" offset character 0, 0, 0 autojustify
set ytics autofreq norangelimit
set y2tics border in scale 0.5,0.25 nomirror norotate font ",8" offset character 0, 0, 0 autojustify
set y2tics 1800 norangelimit
set my2tics 6
set title "Image Processing Trends"
set title offset character 0, 0, 0 font ",18" norotate
set timestamp "" bottom offset character 0,-2,0
unset xlabel
set ylabel "Nbr of Images (bars)"
set ylabel offset character 2, 0, 0 font ",8" textcolor lt -1 rotate by -270
set y2label "Avg Time in Seconds (line)"
set y2label offset character 0, 0, 0 font ",8" textcolor lt -1 rotate by -270
set zero 1e-08
set label "Generated by Luna" font ",6" tc rgb "#808080" at graph 1,-0.25 right
plot 'datafile' using (sum [i=2:4] column(i)):xtic(1) title "< 15 min" lc rgb "#00FF50", '' using ($5>0?$5:NaN) title columnhead lc rgb "#F0F000", '' using ($6>0?$6:NaN) title columnhead lc rgb "#FF0000"
Datafile:
"Date" "< 5 min" "5 - 10 min" "10 - 15 min" "15 - 60 min" "> 60 min" "Avg ET"
2012-10-26 1099 71 23 0 0 184
2012-10-29 16 0 0 0 0 81
2012-10-30 5 0 0 0 0 76
2012-10-31 650 41 24 19 0 176
2012-11-01 831 118 11 0 0 169
2012-11-02 671 158 195 91 0 353
2012-11-05 887 127 64 81 0 287
2012-11-06 1343 35 8 0 0 139
2012-11-07 1018 233 201 112 0 334
2012-11-08 1140 433 143 16 0 271
2012-11-09 1192 115 15 0 0 168
2012-11-12 1008 90 17 1 0 173
2012-11-13 911 62 5 0 0 160
2012-11-14 1066 346 219 68 0 317
2012-11-15 754 110 0 0 0 170
最佳答案
我发现出于某种原因,gnuplot 对 NaN
和 1/0
的处理方式不同,后者是数学上未定义的表达式,被默默地忽略了(参见例如备注 here )。在第 6 列全为零的逻辑中使用 NaN
会产生错误
"<scriptname>", line xx: All points in histogram UNDEFINED
和一个空的png文件。无赖。但是 1/0
在你的逻辑中只会产生一个警告
"<scriptname>", line xx: warning: Skipping data file with no valid points
它会生成包含其余数据的绘图。由于它完全跳过了数据集,因此“> 60 分钟”也不会出现在图例中,这可能是您想要的。
因此只需将 plot 命令中第 6 列(以及第 5 列,如果它充满了零)的逻辑更改为
plot 'datafile' using (sum [i=2:4] column(i)):xtic(1) title "< 15 min" lc rgb "#00FF50", '' using ($5>0?$5:1/0) title columnhead lc rgb "#F0F000", '' using ($6>0?$6:1/0) title columnhead lc rgb "#FF0000"
除了警告消息通知您没有数据可绘制超过 60 分钟(我们知道开始时间)之外,这应该有效。
我使用的是 gnuplot v4.6 补丁级别 0。
关于undefined - gnuplot 直方图中整列为零的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422629/
我只是有一个更琐碎的问题。 为什么undefined == undefined 返回true,而undefined >= undefined 为false? undefined 等于 undefine
用PHP 7.2编写套接字服务器。根据Firefox 60中的“网络”选项卡,服务器的一些HTTP响应的第一行随机变为undefined undefined undefined。因此,我尝试记录套接字
在 JavaScript 中这是真的: undefined == undefined 但这是错误的: undefined <= undefined 起初我以为<=运算符包含第一个,但我猜它试图将其转换
在回答这个问题 (Difference between [Object, Object] and Array(2)) 时,我在 JavaScript 数组中遇到了一些我以前不知道的东西(具有讽刺意味的
来自https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/of , Note: thi
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
当我添加 到我的 PrimeFaces Mobile 页面,然后我在服务器日志中收到以下警告 WARNING: JSF1064: Unable to find or serve resource, u
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我是一名优秀的程序员,十分优秀!