You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gnuplot绘制矩阵时设置灰度调色板及替换方块为自定义符号的方法咨询

灰度模式修改

你的思路完全正确,直接替换原调色板定义语句为set palette gray即可,保留set cbrange [0:5]的前提下,数值0会映射为纯黑,5映射为纯白,正好匹配你的数值范围。

数值对应自定义符号实现

可以实现你要的自定义映射效果,gnuplot中通过pointtype(可缩写为pt)控制点样式,配合三元条件判断就可以给不同数值分配对应符号。常用内置点样式参考:

  • 十字:pt 1
  • 叉号:pt 2
  • 正方形:pt 5
  • 圆形:pt 6
  • 上三角:pt 7
  • 下三角:pt 9

方案1:保留灰度色块,在色块中心叠加对应符号

适合需要同时保留灰度数值信息和符号区分的场景,示例代码如下:

set terminal png
set output "Matrix.png"
set title "Matrix"
set autoscale xfix
set autoscale yfix
set palette gray
set cbrange [0:5]

# 预先定义符号映射,修改更方便
pt0 = 1  # 数值0对应十字
pt1 = 6  # 数值1对应圆形
pt2 = 7  # 数值2对应上三角
pt3 = 9  # 数值3对应下三角
pt4 = 5  # 数值4对应正方形
pt5 = 2  # 数值5对应叉号

plot "Lattice.txt" matrix with image notitle, \
"" matrix using 1:2:( $3 == 0 ? pt0 : $3 == 1 ? pt1 : $3 == 2 ? pt2 : $3 == 3 ? pt3 : $3 == 4 ? pt4 : pt5 ) \
pointtype variable pointsize 2 linecolor "white" notitle

你可以自行调整pointsize参数修改符号大小,修改linecolor调整符号颜色。

方案2:完全替换色块为符号,用灰度区分符号颜色

适合不需要色块、仅用符号+灰度表达信息的场景,示例代码如下:

set terminal png
set output "Matrix.png"
set title "Matrix"
set xrange [-0.5:79.5]
set yrange [-0.5:79.5]
set palette gray
set cbrange [0:5]

pt0 = 1
pt1 = 6
pt2 = 7
pt3 = 9
pt4 = 5
pt5 = 2

plot "Lattice.txt" matrix using 1:2:3:( $3 == 0 ? pt0 : $3 == 1 ? pt1 : $3 == 2 ? pt2 : $3 == 3 ? pt3 : $3 == 4 ? pt4 : pt5 ) \
pointtype variable pointsize 2 linecolor palette notitle

内容的提问来源于stack exchange,提问作者Ovog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:48:03