gnuplot 中最接近的不涉及重大黑客和/或预处理的东西似乎是impulses 风格。帮助文档甚至建议将它们用于 3d 条形图:
为了在 3D 绘图中有效地使用这种风格,它是
用于选择粗线(线宽 > 1)。这近似于 3D 条形图。
这是一个使用impulses 的简单示例,以及链接热图示例中的矩阵样式数据:
set title ''
unset key
set xyplane 0
set view 60,300,1.2
set xrange [-0.5:5]
set yrange [-0.5:5]
splot '-' matrix with impulses lw 20
0 0 0 0 0 0
0 1 2 3 4 5
0 2 4 6 8 10
0 3 6 9 12 15
0 4 8 12 16 20
0 5 10 15 20 25
e
问题是gnuplot 将脉冲呈现为 2d 笔触。如果有办法将 3d 表面效果应用于这些线条,那将是理想的,但我认为没有办法,因为它们只是线条,而不是表面。
您也可以使用vectors 样式来实现与上述impulses 类似的结果,但支持“rgb 变量”(AFAIK 脉冲不支持此)。这允许您根据 z 值更改颜色 - 但仍然没有 3d 表面。您必须对向量样式 (AFAIK) 使用不同的数据格式,但它比其他一些 hack 所需的矩阵样式数据更简单:
set xyplane 0
set view 60,301,1.2
set xrange [0.5:5]
set yrange [0.5:5]
rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
splot '-' using 1:2:(0):(0):(0):3:(rgb($3*(255/25),0,0)) with vectors nohead lw 40
5 5 25
5 4 20
5 3 15
5 2 10
5 1 5
4 5 20
4 4 16
4 3 12
4 2 8
4 1 4
3 5 15
3 4 12
3 3 9
3 2 6
3 1 3
2 5 10
2 4 8
2 3 6
2 2 4
2 1 2
1 5 5
1 4 4
1 3 3
1 2 2
1 1 1
e