标签: gnuplot

如何在Gnuplot中的二进制文件的开头跳过某些字节?

假设我有一个二进制文件,其格式如下: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二进制文件的起始字节,然后将其余部分绘制成矩阵?

plot gnuplot

3
推荐指数
1
解决办法
862
查看次数

如何使用xyz异类数据在R中制作热图

我正在尝试在R建议中使用A真正的热图,但是出现错误:

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)

r graph gnuplot heatmap

3
推荐指数
1
解决办法
2315
查看次数

有没有办法在gnuplot中绘制平均值?

假设我有一个包含两列数据的文件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 numerical-analysis

3
推荐指数
1
解决办法
8905
查看次数

使用gnuplot抑制缺少的字体警告

我正在使用gnuplot并在每次生成图表时收到此警告:

使用内部不可缩放字体打开字体"arial"时无法找到/打开字体

有没有办法压制警告?

gnuplot

3
推荐指数
1
解决办法
9565
查看次数

gnuplot的相关系数

我想用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上找到相关系数?

regression gnuplot correlation

3
推荐指数
2
解决办法
1万
查看次数

在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不能以指数形式读取数据?有没有办法告诉程序如何读取这种类型的数据?

plot fortran file gnuplot

3
推荐指数
1
解决办法
3196
查看次数

gnuplot x直方图中的标签位置

我有以下数据:

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 histogram

3
推荐指数
1
解决办法
3807
查看次数

如何在gnuplot中获得一个中间箭头?

我想在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)

在此输入图像描述

gnuplot

3
推荐指数
1
解决办法
1225
查看次数

Gnuplot如何在每第n行绘制矩阵

我有以下数据

...
   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)

plot gnuplot matrix

3
推荐指数
1
解决办法
1310
查看次数

Gnuplot顺畅的信心乐队

根据这个问题给出的答案,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.

gnuplot curve-fitting

3
推荐指数
1
解决办法
1875
查看次数