【问题标题】:Gnuplot - graphing a matrix and replacing the squares with figuresGnuplot - 绘制矩阵并用数字替换正方形
【发布时间】:2021-09-09 13:48:51
【问题描述】:

我正在使用 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 来做到这一点

第二个愿望是用数字替换每个正方形,或者显示正方形内的数字。数字喜欢三角形、十字形、圆形。

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

谢谢。

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    如果我正确理解了您的问题,您可以对变量点类型执行相同操作。检查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
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多