【发布时间】:2012-08-23 12:04:45
【问题描述】:
我正在尝试使用文件中的数据制作直方图,如下所示:
#Column 1 Column 2
#
0.0300 0.2126
1.0000e-4 0.0104
6.0000e-3 0.1299
1.0000e-4 8.0600e-3
1.0000e-4 0.0105
0.0190 0.2204
6.0000e-3 7.4900e-3
1.0000e-4 0.0952
6.0000e-3 7.4200e-3
1.0000e-4 0.0131
0.0190 0.3062
0.0190 0.2561
0.0300 0.9748
0.0300 0.9406
0.0300 0.0139
1.0000e-4 0.0281
0.0300 0.3625
1.0000e-4 0.0945
0.0300 0.5650
1.0000e-4 0.1045
6.0000e-3 0.2362
1.0000e-4 0.0180
1.0000e-4 0.1366
1.0000e-4 0.0195
0.0300 0.4652
0.0190 0.3505
0.0300 0.5146
0.0190 0.4319
6.0000e-3 0.2054
6.0000e-3 0.2377
0.0300 0.5281
1.0000e-4 0.1128
6.0000e-3 0.0623
如果我使用代码:
n=20 #number of intervals
max=0.03 #max value
min=0 #min value
width=(max-min)/n #interval width
hist(x,width)=width*floor(x/width)+width/2.0
plot 'data' u (hist(\$1,width)):(1.0) smooth freq w boxes lc rgb "blue" lt 1 lw 0.5 notitle
我得到了正确的直方图:
但如果我使用条件行:
plot 'data' u (hist((\$2<=0.5?\$1:1/0),width)):(1.0) smooth freq w boxes lc rgb "blue" lt 1 lw 0.5 notitle
我明白了:
您可以看到 gnuplot 没有正确添加线条,而是将它们绘制为单独的列。
有没有办法解决这个问题?谢谢!
【问题讨论】:
-
这是 bash “here”脚本的一部分吗?否则,我无法弄清楚您为什么要逃避“
$” -
是的,它是一个脚本。在任何情况下,这都不是真正的问题,因为转义
$不会对第一行plot产生任何问题(其中没有条件) -
当您尝试将内容粘贴到 gnuplot 脚本中运行时,转义
$会出现问题;)。不过不用担心。不过,我已经为这个(非常有趣的)问题添加了 1 个解决方案。