标签: gnuplot

gnuplot - 如何计算 csv 文件列中的条目数?

我有一个包含函数拟合例程的 gnuplot 代码。

当必须拟合大量数据点时,此例程很慢。我的输入文件中的数据点数量是可变的,具体取决于我正在运行的一些模拟的参数。

我希望只适合 100 分。到目前为止,我一直通过手动计算输入文件中的条目数并除以 100 并将结果数用作拟合命​​令的“每 N”命令来执行此操作。

更多详情:

我使用的拟合命令是:

fit f(x) "output.csv" every N using 1:4:9 via a,b
Run Code Online (Sandbox Code Playgroud)

其中 N = integer_round_down(output_file_length / 100.0) - 在我的 gnuplot 脚本中手动替换 N 的值之前,我在计算器上手动计算。(好吧,除以 100,我是在脑子里做的,而不是在计算器上。)

有什么方法可以获取任何列中的条目数,例如 col 1、col 4 或 col 9...然后在我的脚本中使用变量来计算 N,而无需在每次更改模拟时编辑我的脚本参数?

csv plot gnuplot function-fitting

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

在 gnuplot 中更改 x 值

我正在绘制一列数据,表示 gnuplot 中的时间序列。每个值代表 500 次迭代/时间单位后的时间值。我可以告诉 gnuplot 将它显示的 x 值乘以 500 吗?

我认为这将是一个标准问题,因为每次必须绘制时间序列时,都需要告诉绘图程序每次迭代具有的时间单位。

我不想手动创建带有 x 值的额外列,因为我有很多不同长度的不同数据。我不想为每个人创建 ax 列。

gnuplot

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

如何将用户定义的图例附加到 gnuplot 中的现有图例

我使用 gnuplot 绘制波纹管,但现在我想添加图例(标题)中不在绘图数据中的额外值。

我用设置箭头绘制垂直并将标签添加到标识

set label "Ef" at (Ef+0.5),-20
#some other code
plot
Run Code Online (Sandbox Code Playgroud)

set style line 11 lc rgb 'black' lt 1 dt "-" lw 1 pt 5 ps 1.5 pi 4  # --- black dashed
set style arrow 1 nohead front  ls 11
set arrow arrowstyle 1 from Ef,GPVAL_DATA_Y_MIN to Ef,GPVAL_DATA_Y_MAX
replot
Run Code Online (Sandbox Code Playgroud)

Ef 是一个虚拟变量(在这种情况下 Ef = 5)

但我想用虚线将 Ef 添加到图例中。

我怎样才能做到这一点?

提前致谢!

plot gnuplot legend

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

splot 中的 z 轴断裂

网上有很多资源可以教你如何绘制断轴的二维图,例如http://www.phyast.pitt.edu/~zov1/。基本上使用的策略是使用多图模式绘制两个图,并将它们组合在一起。

但是,我想要做的是打破 Z 轴,考虑这两个曲面:

势能面示例

由于两个表面之间的能隙很大,在这个图中地能面几乎是“平坦的”,但如果我们单独绘制地能面,我们可以看到它根本不是“平坦”的:

在此处输入图片说明

有没有办法打破Z轴让Gnuplot显示更多表面细节?multiplot 在这里不起作用,因为它是一个 3d 绘图。

gnuplot

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

在 gnuplot 中的两点之间绘制一条线

我有一个 csv 文件,其格式如下,有四列(作为MWE):

xcoord1,ycoord1,xcoord2,ycoord2
0.1,0.2,0.4,0.3
0.5,0.3,0.7,0.5
Run Code Online (Sandbox Code Playgroud)

我想从每个xcoord1,ycoord1xcoord2,ycoord2使用 gnuplot绘制一条线。例如,在这种情况下,我将从0.1,0.2to0.4,0.30.5,0.3to画两条线0.7,0.5

这怎么可能?

plot gnuplot line coordinates

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

Gnuplot 中的高斯峰不重叠

我正在尝试使用 Gnuplot 在同一张图上绘制多个高斯函数,这是一件非常简单的事情。问题是峰值不重叠,我得到以下结果,看起来它们有不同的峰值,但它们没有。我怎样才能解决这个问题?

丑事

math graphing gnuplot gaussian

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

Gnuplot,跳过时间数据,直方图

所以,我需要按日期制作数据的直方图,但我有 xticlabel 重叠的问题,所以,我试图找到一个解决方案,如何跳过 xtic 以避免重叠。考虑到日期不是整数抽动,我试图以这种方式解决它:

.dat 文件

Time    Dat 1   Dat 2
1   27-12-2016  12  2
2   28-12-2016  13  7
3   29-12-2016  17  2
4   30-12-2016  9   10
....
Run Code Online (Sandbox Code Playgroud)

是否可以按第一列计算 xtic,但在第二列中显示值而不是在第一列中显示值?

我的代码:

reset
dx=5.
n=2
total_box_width_relative=0.75
gap_width_relative=0.1
d_width=(gap_width_relative+total_box_width_relative)*dx/2.
d_box = total_box_width_relative/n
reset

set term png truecolor font "arial,10" fontscale 1.0 size 800,400
set output "test.png"
set datafile separator "\\t"
set title "Errors"
set print "-"
set xlabel 'x' offset "0", "-1"
set ylabel 'y' offset "1", "-0"
set key invert …
Run Code Online (Sandbox Code Playgroud)

gnuplot histogram time-format

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

用 gnuplot 拟合阻尼正弦波数据集,得到很多错误

我试图适应这个数据集:

#Mydataset damped sine wave data
#X ---- Y
45.80   320.0
91.60   -254.0
137.4   198.0
183.2   -156.0
229.0   126.0
274.8   -100.0
320.6   80.0
366.4   -64.0 
412.2   52.0
458.0   -40.0
503.8   34.0
549.6   -26.0
595.4   22.0
641.2   -18.0
Run Code Online (Sandbox Code Playgroud)

如下图所示,它具有阻尼正弦波的经典趋势: 在此处输入图片说明

所以我首先设置了适合的宏

f(x) = exp(-a*x)*sin(b*x)
Run Code Online (Sandbox Code Playgroud)

然后我做了适当的合身

fit f(x) 'data.txt' via a,b
iter      chisq       delta/lim  lambda   a             b            
   0 2.7377200000e+05   0.00e+00  1.10e-19    1.000000e+00   1.000000e+00

Current data point
=========================
#               = 1 out of 14
x               = -5.12818e+20   
z               = 320            

Current set of parameters …
Run Code Online (Sandbox Code Playgroud)

plot gnuplot curve-fitting data-fitting

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

Gnuplot 将误差线填充为透明阴影

在此处输入图片说明

大家好,

我输入数据为:

x(1),y(2),z(2)

x(2),y(2),z(2)

等等,

其中 x 和 y 值分别位于 x 轴和 y 轴上,z 值是误差线。从 Gnuplot 中,我如何重现图中多个图的误差条是透明的?

任何的想法?谢谢!

transparency 2d gnuplot errorbar

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

如何使用矢量从风向角度绘制箭头

我希望有一个人可以帮助我。我正在尝试绘制风的角度并为风的强度着色。风强度的调色板很好,但我无法将角度转换为矢量并正确绘制箭头 - 理想情况下没有“尾巴”/线..这是数据文件的示例:

"Date", "Temp", "icon", "rain", "snow", "wind.speed", "wind.deg", "clouds.all"
"2019-12-29 18:00:00",5.58,"04n",,,"n",2.45,185,51,1025
"2019-12-29 21:00:00",5.36,"04n",,,"n",2.51,182,99,1025
"2019-12-30 00:00:00",5.34,"04n",,,"n",2.6,196,95,1025
"2019-12-30 03:00:00",5.28,"03n",,,"n",2.72,207,47,1024
"2019-12-30 06:00:00",5.23,"02n",,,"n",2.62,200,23,1024
"2019-12-30 09:00:00",5.47,"01d",,,"d",2.48,214,0,1024
"2019-12-30 12:00:00",9.82,"01d",,,"d",3.96,215,0,1023
"2019-12-30 15:00:00",8.94,"01d",,,"d",3.24,218,0,1021
"2019-12-30 18:00:00",6.18,"01n",,,"n",2.88,214,0,1022
"2019-12-30 21:00:00",5.75,"01n",,,"n",2.13,232,0,1022
"2019-12-31 00:00:00",5.82,"03n",,,"n",0.8,216,33,1022
"2019-12-31 03:00:00",5.18,"04n",,,"n",0.32,8,66,1022
"2019-12-31 06:00:00",5.37,"04n",,,"n",1.79,58,83,1022
"2019-12-31 09:00:00",5.1,"04d",,,"d",3.88,66,100,1023
"2019-12-31 12:00:00",7.97,"04d",,,"d",4.39,84,100,1025
"2019-12-31 15:00:00",8.52,"04d",,,"d",3.97,74,100,1025
"2019-12-31 18:00:00",7.83,"04n",,,"n",2.97,58,100,1026
"2019-12-31 21:00:00",7.93,"04n",,,"n",4.08,72,100,1027
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的代码 - 主要来自这里:http : //www.gnuplotting.org/vector-field-from-data-file/

#!/usr/bin/gnuplot
reset

set datafile missing "?"
set datafile separator ","

set terminal pngcairo true transparent truecolor size 1800, 500
set output '~/meteogram/vector.png'

set xdata time
set timefmt …
Run Code Online (Sandbox Code Playgroud)

gnuplot

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