gnuplot:如何绘制不同直径的 3D 均匀球体?
gnuplot: How to plot homogeneous spheres in 3D with different diameters?
我想使用 gnuplot 制作大量不同直径球体的 3D 表示,其信息位于名为 'data.dat'
的文件中。如果我这样做:
splot 'data.dat' u 1:2:3 w p lt 7
我得到了一系列颜色均匀的小尺寸点。如何使用 splot
命令添加球体的 real 大小(从文件 'data.dat'
的第 4 列读取)?类似于:
splot 'data.dat' u 1:2:3:4 ...
从 gnuplot 5.4 开始,我猜你的绘图风格 with circles
也是 3D 的,之前仅限于 2D 绘图。
如果您有较旧的 gnuplot 版本,您可以执行以下操作:
splot 'data.dat' u 1:2:3:4 w p pt 7 ps var notitle
这将绘制大小可变的点。但是,您要求“真实”尺寸。您可以通过使用某些因子缩放第 4 列来解决此问题。类似于:
Factor = 0.123
splot 'data.dat' u 1:2:3:(*Factor) w p pt 7 ps var notitle
以下仅适用于 gnuplot >=5.4:
代码:
### plot with circles in 3D (only for gnuplot >=5.4)
reset session
# create some test data
set print $Data
do for [i=1:100] {
print sprintf("%g %g %g %g %g", rand(0), rand(0), rand(0), rand(0)*0.02+0.02, int(rand(0)*0xffffff))
}
set print
set view 60,30,1.25
set view equal xyz
set xyplane at 0
set tics 0.2
set style fill solid 0.5
splot $Data u 1:2:3:4:5 w circles lc rgb var notitle
### end of code
结果:
我想使用 gnuplot 制作大量不同直径球体的 3D 表示,其信息位于名为 'data.dat'
的文件中。如果我这样做:
splot 'data.dat' u 1:2:3 w p lt 7
我得到了一系列颜色均匀的小尺寸点。如何使用 splot
命令添加球体的 real 大小(从文件 'data.dat'
的第 4 列读取)?类似于:
splot 'data.dat' u 1:2:3:4 ...
从 gnuplot 5.4 开始,我猜你的绘图风格 with circles
也是 3D 的,之前仅限于 2D 绘图。
如果您有较旧的 gnuplot 版本,您可以执行以下操作:
splot 'data.dat' u 1:2:3:4 w p pt 7 ps var notitle
这将绘制大小可变的点。但是,您要求“真实”尺寸。您可以通过使用某些因子缩放第 4 列来解决此问题。类似于:
Factor = 0.123
splot 'data.dat' u 1:2:3:(*Factor) w p pt 7 ps var notitle
以下仅适用于 gnuplot >=5.4:
代码:
### plot with circles in 3D (only for gnuplot >=5.4)
reset session
# create some test data
set print $Data
do for [i=1:100] {
print sprintf("%g %g %g %g %g", rand(0), rand(0), rand(0), rand(0)*0.02+0.02, int(rand(0)*0xffffff))
}
set print
set view 60,30,1.25
set view equal xyz
set xyplane at 0
set tics 0.2
set style fill solid 0.5
splot $Data u 1:2:3:4:5 w circles lc rgb var notitle
### end of code
结果: