我有一个包含函数拟合例程的 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,而无需在每次更改模拟时编辑我的脚本参数?
我正在绘制一列数据,表示 gnuplot 中的时间序列。每个值代表 500 次迭代/时间单位后的时间值。我可以告诉 gnuplot 将它显示的 x 值乘以 500 吗?
我认为这将是一个标准问题,因为每次必须绘制时间序列时,都需要告诉绘图程序每次迭代具有的时间单位。
我不想手动创建带有 x 值的额外列,因为我有很多不同长度的不同数据。我不想为每个人创建 ax 列。
我使用 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 添加到图例中。
我怎样才能做到这一点?
网上有很多资源可以教你如何绘制断轴的二维图,例如http://www.phyast.pitt.edu/~zov1/。基本上使用的策略是使用多图模式绘制两个图,并将它们组合在一起。
但是,我想要做的是打破 Z 轴,考虑这两个曲面:
由于两个表面之间的能隙很大,在这个图中地能面几乎是“平坦的”,但如果我们单独绘制地能面,我们可以看到它根本不是“平坦”的:
有没有办法打破Z轴让Gnuplot显示更多表面细节?multiplot 在这里不起作用,因为它是一个 3d 绘图。
我有一个 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,ycoord1到xcoord2,ycoord2使用 gnuplot绘制一条线。例如,在这种情况下,我将从0.1,0.2to0.4,0.3和0.5,0.3to画两条线0.7,0.5。
这怎么可能?
所以,我需要按日期制作数据的直方图,但我有 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) 我试图适应这个数据集:
#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) 大家好,
我输入数据为:
x(1),y(2),z(2)
x(2),y(2),z(2)
等等,
其中 x 和 y 值分别位于 x 轴和 y 轴上,z 值是误差线。从 Gnuplot 中,我如何重现图中多个图的误差条是透明的?
任何的想法?谢谢!
我希望有一个人可以帮助我。我正在尝试绘制风的角度并为风的强度着色。风强度的调色板很好,但我无法将角度转换为矢量并正确绘制箭头 - 理想情况下没有“尾巴”/线..这是数据文件的示例:
"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 ×10
plot ×4
2d ×1
coordinates ×1
csv ×1
data-fitting ×1
errorbar ×1
gaussian ×1
graphing ×1
histogram ×1
legend ×1
line ×1
math ×1
time-format ×1
transparency ×1