Gnuplot - 绘制矩阵并用数字替换正方形

Gnuplot - graphing a matrix and replacing the squares with figures

我正在使用 gnuplot 使用以下代码从数据集中绘制 80x80 矩阵:

set terminal png
set output "Matrix.png"
set title "Matrix"
set autoscale xfix
set autoscale yfix
set palette define (0 "black", 1 "red", 2 "blue", 3 "yellow", 4 "gold", 5 "green")
set cbrange [0:5]
plot "Lattice.txt" matrix with image

现在我需要做两个修改,第一个是把它变成灰度,我想我可以通过用 set palette gray

替换调色板来做到这一点

第二个想法是用数字替换每个方块,或者在方块中显示数字。图形喜欢三角形、十字、圆形。

有没有办法用每个符号定义每个数字,就像我以前用调色板颜色做的那样?

谢谢。

如果我没有正确理解你的问题,你可以对变量点类型做同样的事情。检查 help points。在 gnuplot 控制台中键入 test,您将看到可用的点类型。下面的示例仍然使用调色板,因为它看起来更好。

代码:

### variable pointtype
reset session
set size square

# create some random test data
set print $Data
    do for [y=1:15] {
        Line = ''
        do for [x=1:15] {
            Line = Line.sprintf(" %d", int(rand(0)*6))
        }
        print Line
    }
set print

set palette define (0 "black", 1 "red", 2 "blue", 3 "yellow", 4 "gold", 5 "green")

myPointtypes     = "2 5 7 9 11 13"
myPointtype(col) = int(word(myPointtypes,int(column(col))+1))

set offsets 0.5,0.5,0.5,0.5

plot $Data u 1:2:(myPointtype(3)):3 matrix w p pt var lc palette notitle
### end of code

结果: