我试图在 gnuplot 中绘制一些数据作为热图。我的数据是一个包含三列的“.txt”文件。前两列是自变量,第三列是输出。例如,一个简化的例子:
0.00 0.00 11.9
0.00 0.50 0.01
0.50 0.00 4.5
0.50 0.50 20.0
gnuplot> set view map; set dgrid3d; splot "output.txt" using 1:2:3 with pm3d
Run Code Online (Sandbox Code Playgroud)
我希望根据它们的值得到一个带有颜色的 2*2 正方形数组。相反,我认为 gnuplot 已经插入了这些值,因为不管我的初始数据点数量如何,它都会绘制一个 9*9 的带阴影的正方形数组。我怎样才能在没有插值的情况下绘制我拥有的数据? gnuplot 的输出
我想你要找的是plot ... with image pixels. 下面的脚本生成一个只有 4 个像素的 png 文件,按其 z 值着色:
#!/bin/bash
echo "0.00 0.00 11.9
0.00 0.50 0.01
0.50 0.00 4.5
0.50 0.50 20.0" > output.txt
gnuplot << GNUPLOT
set term png
set out "output.png"
plot "output.txt" using 1:2:3 with image pixels
GNUPLOT
rm output.txt
Run Code Online (Sandbox Code Playgroud)
该output.png文件应该按照您期望的方式运行(希望如此)!
您还可以调整 cbtics 以仅打印第三列上的值。我还建议查看这两个gnuplot手册页: