你能用Gnuplot计算轮廓的面积吗?

你能用Gnuplot计算轮廓的面积吗?,gnuplot,contour,area,Gnuplot,Contour,Area,我已经使用gnuplot好几个星期了。我有23个变量的大数据文件,但我特别选择x-y坐标数据和荧光强度数据进行分析 我想做的一件事是绘制荧光粒子的等高线图。我要补充的是,这个等高线图是随着时间的推移,所以会有几个点几乎重叠,但实际上这是同一个粒子。我想画这些点周围的轮廓,颜色代码根据强度和有轮廓的面积显示在图表上 对于等高线图,除了一个目标外,我已经实现了所有这些目标。我无法为gnuplot设计一种方法来计算和显示轮廓内的面积。如果可以的话,我就可以估算出粒子的面积。我承认我的目标可能超出了gn

我已经使用gnuplot好几个星期了。我有23个变量的大数据文件,但我特别选择x-y坐标数据和荧光强度数据进行分析

我想做的一件事是绘制荧光粒子的等高线图。我要补充的是,这个等高线图是随着时间的推移,所以会有几个点几乎重叠,但实际上这是同一个粒子。我想画这些点周围的轮廓,颜色代码根据强度和有轮廓的面积显示在图表上

对于等高线图,除了一个目标外,我已经实现了所有这些目标。我无法为gnuplot设计一种方法来计算和显示轮廓内的面积。如果可以的话,我就可以估算出粒子的面积。我承认我的目标可能超出了gnuplot的能力范围,但如果有解决方案的话,那将是非常完美的

这是我的等高线图脚本,正如我所说,它提供了所有我需要的东西,包括等高线内的区域

坐标单位为纳米,数据集上的每个点都是分子的中心。我采用了一个小范围的坐标,因为数据太多,不可能进行区分(有8万多个数据点)。我还设置了强度阈值,因为我只想要相对明亮的荧光粒子(使用设置的cntrparam水平增量800050001000000)$23和24美元分别是x坐标和y坐标$12是强度

#Contour plot of Fluorescent Particle Location with Intensity
#Gnuplot script file for plotting data in file "1002 all.txt"
reset
set dgrid3d 100,1000,1
set pm3d
set isosample 30
set xlabel 'x (nm)'
set ylabel 'y (nm)'
set contour base
set cntrparam levels incremental 8000,5000,100000
unset key
unset surface
set view map
set xrange[20000:22000]
set yrange[7000:10000]
splot "1002 all.txt" using ($23<22000 && $23>20000 ?$23 : 1/0):$24<10000 && $24>7000 ?$24 : 1/0):12 with lines
set terminal push               


set terminal png                
set output "1002_all_fluorophores_section_contour.png" # set the output filename
set terminal png size 1280,760
replot    
set output                               
#荧光粒子位置与强度的等高线图
#用于在文件“1002 all.txt”中打印数据的Gnuplot脚本文件
重置
设置dgrid3d 1001000,1
设置pm3d
设置isosample 30
设置xlabel'x(nm)'
设置y标签“y(nm)”
设置等高线基准
设置cntrparam级别增量800050001000000
取消设置键
未定型表面
设置视图地图
设置X范围[20000:22000]
设置Y范围[7000:10000]
使用($2320000?$23:1/0):$247000?$24:1/0):12行打印“1002all.txt”
设置终端推送
设置终端png
设置输出“1002_所有荧光团_截面_轮廓.png”#设置输出文件名
设置终端png大小1280760
雷普特
设定输出

否,您不能使用gnuplot进行此类计算。这是一个绘图程序,不是一个数字工具。谢谢,我会寻找另一个解决方案。如果你在“splot”之前做“set table”,它会生成等高线的文本文件,你可以用它来集成后处理。否则,最好离散Z值,并在对XY坐标进行装箱后计算出属于目标轮廓级别的点的数量。这是一个好主意。非常感谢。我使用“设置表”并将坐标导入Matlab。然后我使用“polyarea”计算轮廓点内的面积。作为一种方法,它有点笨重,但它是有效的。