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

如何在GNUPLOT中仅显示指定xtics?Matrix绘图场景设置问题

gnuplot矩阵绘图自定义xticks问题解决

使用如下数据集执行plot $data matrix columnheaders rowheaders with image绘图后,修改xticks时遇到两个问题:

$data << EOD
xxx   -2 -1 0 1 2
0     4  5  6 -3 -1
1     3  4  7 -4 -2
2     2  3  6 6  4 
3     4  -3 -6 4 1
EOD

遇到的问题

  • 执行set xtics add ("T" 0.577)时,标签"T"未出现在预期的0和1之间
  • 执行unset xtics+set xtics ("T" 0.577)+replot后,原数据集的xtics依然存在,无法仅显示"T"标签

原因分析

用matrix columnheaders参数绘图时,gnuplot会自动将列头的数值(-2、-1、0、1、2)作为x轴的实际刻度值,而非列索引(0、1、2、3、4):

  1. 你预期的0和1是列头的数值,对应x轴位置就是0和1,中间点是0.5,0.577并非这个位置,所以标签不在预期区域;
  2. 直接unset xtics后重新设置,gnuplot重绘时仍会读取列头自动生成刻度,必须先关闭自动刻度行为。

解决方案

1. 让标签显示在0和1之间

将自定义刻度位置改为0和1的中间值0.5:

set xtics add ("T" 0.5)
replot

2. 仅显示自定义标签"T"

需要先阻止gnuplot自动从列头生成刻度,再设置自定义刻度:
方法一:绘图时禁用自动xtics,再手动设置

plot $data matrix columnheaders rowheaders with image noxtics
set xtics ("T" 0.5)
replot

方法二:关闭自动刻度生成后设置自定义刻度

set xtics nomirror autoscale fix  # 关闭自动读取列头的行为
unset xtics
set xtics ("T" 0.5)
replot

如果需要保留原列头刻度并添加自定义标签,可直接指定所有刻度:

set xtics (-2, -1, 0, "T" 0.5, 1, 2)
replot

内容的提问来源于stack exchange,提问作者Pierre G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:42:11