假设我有一个二进制文件,其格式如下:4*sizeof(double),4*sizeof(size_t),(Ny*Nx)*dizeof(double).
前4个双打和4个size_ts是关于文件的元信息.剩下的就是我想用gnuplot绘制的数据.
现在我必须将文件转换为另一个没有标题的文件使用命令绘制:
plot "convertedfile.data" binary format='%double' array=(Ny, Nx) u 1 w image
Run Code Online (Sandbox Code Playgroud)
问:有没有办法告诉gnuplot忽略N二进制文件的起始字节,然后将其余部分绘制成矩阵?
interp.old(x,y,z,xo = xo,yo = yo,ncp = 0,extrap = extrap,
:x和y的比例太不同了
在代码行之后:
s <- interp(x,y,z)
Run Code Online (Sandbox Code Playgroud)
我的数据被构造为期望在深色连续背景中获得彩色的热图,如线条,并且可以GNUplot使用set pm3d map和来工作set hidden3d。数据对应y于给定时间(x)中分子产生()的模型,其出现频率用表示z。看起来像这样:
1.000000000000e+00 1e-8 0
1.000000000000e+00 5e-8 0
1.000000000000e+00 1e-7 5
1.000000000000e+00 5e-7 0
1.000000000000e+00 1e-6 0
1.000000000000e+00 5e-6 0
1.000000000000e+00 1e-5 0
1.000000000000e+00 5e-5 0
1.000000000000e+00 1e-4 0
1.000000000000e+00 5e-4 0
1.000000000000e+00 1e-3 0
1.000000000000e+00 5e-3 0
1.000000000000e+00 1e-2 0
1.000000000000e+00 5e-2 0
1.000000000000e+00 1e-1 0 …Run Code Online (Sandbox Code Playgroud) 假设我有一个包含两列数据的文件file.dat.我通常会用它来绘制它
plot "file.dat" u 1:2
Run Code Online (Sandbox Code Playgroud)
我想平均超过10(例如)前一点和后面的10个点,并将其绘制在同一个图上.我可以使用一些外部脚本轻松地做到这一点,我在其中创建另一个列:
for(i=-10;i<=10;++i)
$3[j] += $2[j-i]
Run Code Online (Sandbox Code Playgroud)
但是,我想知道在gnuplot中这样做的方法.我的下一步是进行高斯平均.
我正在使用gnuplot并在每次生成图表时收到此警告:
使用内部不可缩放字体打开字体"arial"时无法找到/打开字体
有没有办法压制警告?
我想用fit函数绘制数据:function f(x) = a+b*x**2.绘图后我得到了这个结果:
correlation matrix of the fit parameters:
m n
m 1.000
n -0.935 1.000
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何在gnuplot上找到相关系数?
嗯,这是我之前的问题的延续.正如我所提到的,数据文件是从Fortran代码生成的.所有数据文件都包含两列数据.在Fortran代码中我使用FORMAT(2(1X,D22.16)).所以,输出文件看起来像
-.4515533388641104D-01 -.6842652196656712D+01
-.1381692033642749D+00 0.6762844180244199D+01
-.5741668880663318D-01 -.7891086299010933D+01
-.1051164522902431D+00 0.7758389636011907D+01
-.7574000988697732D-01 -.8180315630079706D+01
-.7939204753736680D-01 0.8167097825331970D+01
-.1003250672387262D+00 -.7865995561517515D+01
-.6006135667296913D-01 0.7987393828927278D+01
..................... ......................
Run Code Online (Sandbox Code Playgroud)
这只是一个数据文件的一小部分样本.为了绘制我使用的这个数据文件
plot "data001.out" u 1:2 w d lc rgb 'black'
Run Code Online (Sandbox Code Playgroud)
但是,gnuplot无法正确读取数据并生成此图
使用Mathematica程序的正确情节是这样的

我注意到,如果我更改FORMAT为(2(1X,F22.16))(十进制形式),一切正常.为什么gnuplot不能以指数形式读取数据?有没有办法告诉程序如何读取这种类型的数据?
我有以下数据:
t_4 24 3 0 0
t_6 37 4 0 0
t_8 51 4 2 0
t_4 15 1 0 0
t_6 21 0 0 1
t_8 30 0 0 1
t_4 13 2 1 0
t_6 20 3 1 0
t_8 22 4 1 0
Run Code Online (Sandbox Code Playgroud)
我尝试使用此修改版本的代码制作类似于http://www.bmsc.washington.edu/people/merritt/gnuplot/stack+cluster.dem的直方图:
set style data histogram
set style histogram rowstacked
set style fill solid
set boxwidth 0.5
set key invert samplen 0.2
set key samplen 0.2
set bmargin 3
set offset 0,2,0,0
set …Run Code Online (Sandbox Code Playgroud) 我想在gnuplot中画一个箭头,箭头出现在箭头中间而不是极端.尝试中间头选项但似乎不起作用.
这是我用来创建下面图像的脚本,
set style arrow 1 front head filled size screen 0.008,6 lt 1 lw 1
set arrow from 0.4750,-0.3592 to 1.05767,0.4179 as 1
Run Code Online (Sandbox Code Playgroud)

我有以下数据
...
10800 42.835282 2.0799322 9.6376456 14.69194 15.74205 16.591997 14.208506 17.036752 16.974312 30.759594 318.69734
10900 59.608134 2.0319971 10.413494 17.136174 18.597465 19.31398 16.78688 19.939459 20.034195 43.809158 470.3118
11000 71.147383 2.3502536 11.098845 19.525944 21.618026 22.255387 19.446565 22.871378 23.265609 60.717349 559.03537
11100 70.844437 2.5290753 11.759208 21.795673 24.63466 25.294785 22.079689 25.788459 26.690083 80.472264 513.94945
...
Run Code Online (Sandbox Code Playgroud)
数据总共600行,12列.我想绘制从第3列到第12列的每第50行的逐行数据.我使用了绘图数据矩阵(因为[i = 3:12]没有像我预期的那样工作)
data = "data.dat"
plot data matrix every 1::2 w l
Run Code Online (Sandbox Code Playgroud)
这给了我想要的图(绘制每行的第3~12列),但绘制了所有600行的曲线.如何在每个1 :: 2命令中绘制此矩阵中的每50行,因此只显示12条曲线?
谢谢
ps)我刚刚使用sed命令自己解决了
plot '<sed -n "0~50p" data.dat' matrix every 1::2 w l
Run Code Online (Sandbox Code Playgroud) 根据这个问题给出的答案,Gnuplot平滑置信区间线而不是误差条我能够得到相同的结果给出我的数据(y的误差是对称的所以它是y加/减errorY):
# x y errorY
1 3 0.6
2 5 0.4
3 4 0.2
4 3.5 0.3
Run Code Online (Sandbox Code Playgroud)
码:
set style fill transparent solid 0.2 noborder
plot 'data.dat' using 1:($2-$3):($2+$3) with filledcurves title '95% confidence', \
'' using 1:2 with lp lt 1 pt 7 ps 1.5 lw 3 title 'mean value'
Run Code Online (Sandbox Code Playgroud)
现在通过连接每个y + errorY和y-errorY点给出置信带.如果连接不仅仅是一条直线,而是一条平滑的线条,就像人们如何使数据点平滑一样,我想要它smooth csplines.