我的程序生成调用gnuplot的bash脚本.我不想制作额外的文件来存储数据; 有什么办法可以明确地调用所有值吗?或者可能让bash创建一个临时文件.
就像是
plot {(1,5),(2,10),(3,1)}
Run Code Online (Sandbox Code Playgroud)
是我在找什么.
我在x轴上使用了非常大的数字(数百万),所以当我使用时
set format x %6.0f
Run Code Online (Sandbox Code Playgroud)
我得到了像25000000这样的大数字.这是相当不错的,但需要很大的空间,所以只有很少的标签和读者丢失信息.
当我排除设置格式时,我会得到像2e + 07这样的东西,根据我的观点,对于读者来说,这是非常不友好和不寻常的.
我想格式化为25*(10 ^ 6),所以数字将是第一个,然后乘以10 ^ n,或类似的东西.如果x轴长约30000000点甚至更多,我认为这将是最好的解决方案.
但是,阅读手册,例如"如何更改数字的格式?" 来自http://t16web.lanl.gov/Kawano/gnuplot/tics-e.html并没有给我太多帮助.
先感谢您.
嗨是否有可能在gnuplot中设置比例,以便scaleX和scaleY的长度相同?我尝试了不同的技巧(设置大小,设置比率等),但即使scaleX和scaleY的范围相同 - 这些标度的长度也不同.看起来范围从0到1(在scalex上)的长度大于从0到1的范围的长度(在scaleY上).
我有一个包含4个数字(最小值,最大值,平均值,标准推导值)的文件,我想用gnuplot绘制它.
样品:
24 31 29.0909 2.57451
12 31 27.2727 5.24129
14 31 26.1818 5.04197
22 31 27.7273 3.13603
22 31 28.1818 2.88627
Run Code Online (Sandbox Code Playgroud)
如果我有一个列有4个文件,那么我可以这样做:
gnuplot "file1.txt" with lines, "file2.txt" with lines, "file3.txt" with lines, "file4.txt" with lines
Run Code Online (Sandbox Code Playgroud)
它将绘制4条曲线.我不关心x轴,它应该只是一个恒定的增量.
我怎么能请情节?我似乎无法找到一种方法,有4条曲线,1个文件有4列,只有一个不断递增的x值.
谢谢.
我从source forge 页面下载了gnuplot 5.0.1(gnuplot-5.0.1.tar.gz)的源文件.我还在我的OS X 10.7.5上安装了命令行工具,以便我拥有gcc并make在/usr/bin文件夹中.
我遵循的安装说明INSTALL.gnu的压缩包文件:我跑的configure文件和类型make,make check,make install,和make clean.使用这些命令,gnuplot位于/usr/local/bin/.
make check在测试许多gnuplot脚本之前,该命令会在shell中输出很多行.我实际上可以想象这些情节,我认为"很好,它有效".所以我打开了一个新的终端shell并键入gnuplot以开始使用它(终端自动设置为qt).一个简单的plot sin(x)失败.Gnuplot返回以下消息:
Could not start gnuplot_qt with path "/usr/local/libexec/gnuplot/5.0/gnuplot_qt"
Could not start gnuplot_qt with path "/usr/local/libexec/gnuplot/5.0/gnuplot_qt"
Could not connect to gnuplot_qt "" . Starting a new one
Could not start gnuplot_qt with path "/usr/local/libexec/gnuplot/5.0/gnuplot_qt"
Warning: slow font initialization . . …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据文件:
1 1.0 0
2 1.5 0
3 0.0 1
4 1.2 2
5 1.0 1
6 1.1 1
Run Code Online (Sandbox Code Playgroud)
第一列是我的X值,第二列是我的Y值,第三列是颜色.我想根据第三列对每个线段进行着色.所以前两个线段是"颜色1",下一个是"颜色2",下一个是"颜色3",最后两个再次是"颜色1".
我试过了:
plot 'file.dat' using 1:2:3 with lines rgb variable;
Run Code Online (Sandbox Code Playgroud)
但我的线条全黑了.
这可能在gnuplot中吗?
谢谢,加布
我在flatfile中收集一些系统数据,其格式如下:
YYYY-MM-DD-HH24:MI:SS DD1 DD2 DD3 DD4
Run Code Online (Sandbox Code Playgroud)
其中DD1-DD4是四项数据.该文件的一个示例是:
2011-02-01-13:29:53 16 8 7 68
2011-02-01-13:29:58 13 8 6 110
2011-02-01-13:30:03 26 25 1 109
2011-02-01-13:30:08 13 12 1 31
2011-02-01-13:30:14 192 170 22 34
2011-02-01-13:30:19 16 16 0 10
2011-02-01-13:30:24 137 61 76 9
2011-02-01-13:30:29 452 167 286 42
2011-02-01-13:30:34 471 177 295 11
2011-02-01-13:30:39 502 192 309 10
Run Code Online (Sandbox Code Playgroud)
该文件超过200万行,每五秒钟有一个数据点.
我需要绘制这些数据,以便能够从中获得意义.
我试过的
目前我已尝试使用各种unix工具gnuplot和rrdtool(awk,sed等).这两种方法都有效,但每次我想以不同的方式查看数据时,似乎都需要大量的切割和重新编辑数据.我的直觉是rrdtool是正确的方法,但目前我正在努力将数据快速地加入其中,部分原因是因为我必须将我的时间戳转换为Unix时代.我的理解是,如果我决定我想要一个新的聚合粒度,我必须重建rrd(这对于实时收集是有意义的,但不是像这样的追溯加载).这些事情让我觉得我可能正在使用错误的工具.
将数据收集到平面文件是固定的 - 例如,我无法将集合直接传递到rrdtool.
我的问题
我希望人们对制图的最佳方式有所了解.我有这些要求:
有什么建议?
我试图在gnuplot中绘制一个对数周期函数:cos((log(abs(t-Tc))*PI/log10(lambda)+ phi)
但由于log(x)的性质接近x = 0,情节越来越难看.
如何在gnuplot中绘制对数周期函数,使其看起来不错?
我的剧情脚本如下所示:
phi = 1
TcFormated = 9.67e+8
lambda = 2
PI = 3.1415
g(t) = abs(cos((log(abs(t-TcFormated))*PI/log10(lambda) ) + phi))
set tmargin at screen 0.01
set bmargin at screen 0.99
set lmargin at screen 0.01
set rmargin at screen 0.99
set xrange [8.4e+8:1.04e+9]
set yrange [0:1]
unset xtics
unset ytics
plot g(x) t '' w l
pause -1
Run Code Online (Sandbox Code Playgroud)

设定后:
set samples 10000
Run Code Online (Sandbox Code Playgroud)
我有一个更好看的图表:

假设我有一个如下所示的文件:
"p = 0.1"
1 1
3 3
4 1
"p = 0.2"
1 3
2 2
5 2
Run Code Online (Sandbox Code Playgroud)
是否有可能使Gnuplot在一个图中绘制这两个数据集,并在每个数据集的第一行给出标题?