Gnuplot:显示包含z值的鼠标悬停工具提示

时间:2018-03-28 14:43:12

标签: gnuplot

我希望gnuplot终端动态显示类似于工具提示窗口或标签的内容,该窗口或标签显示相应绘制单元格的z值(在点击它或由鼠标悬停事件触发后)。我的终端类型是wxtwxt似乎唯一支持的是在状态栏的左下角显示鼠标坐标。工具提示的替代方法可能是将状态栏中显示的坐标替换为其z值。换句话说:我需要一些功能来动态显示鼠标位置的z值。

这是一个快速示例(在mouseover或-click上我希望看​​到相应方块的z值):

enter image description here

这是相应的gnuplot-input:

unset key
set cbrange [0:6]
set xrange [0:10]
set yrange [0:5]
set size ratio -1
set cbtics out nomirror
set palette maxcolors 12 model RGB defined (0 '#1a9641', 1 '#a6d96a', 2 '#ffffbf', 3 '#fdae61', 4 '#d7191c')
$map1 << EOD
5.5 4.0 3.5 1.0 0.5 5.0 4.5 3.0 1.5 0.0
2.0 2.5 0.0 5.5 5.5 4.5 3.0 0.5 0.0 1.5
0.5 0.0 0.5 5.5 5.5 0.0 0.5 0.0 1.5 0.0
0.0 0.5 0.0 2.5 3.0 0.5 0.0 0.5 2.0 3.5
0.5 1.0 2.5 4.0 3.5 2.0 2.5 0.0 0.5 1.0
EOD
plot '$map1' using ($1+.5):($2+.5):($3) matrix with image

2 个答案:

答案 0 :(得分:2)

您可以使用hypertext labels,但是将数据块中的数据转换为单个标签需要花费一些时间。如果您添加以下代码段

do for [row=1:5] {
   rowdata = $map1[row]
   col = 1
   do for [value in rowdata] {
      set label value at col-0.5,row-0.5 center back  hypertext point pt 4 ps 8
      col = col+1
   }
}
plot获得您想要的内容之前

到您的脚本:

enter image description here

它的工作原理是在图像的背景中放置一个大致相同大小的方形点,并使每个点成为显示其值的超文本的锚点。将back替换为front,以查看并调整这些点的大小。

答案 1 :(得分:2)

使用plot ... with labels hypertext绘制数据,以获得悬停相应点时出现的标签。由于hypertext选项仅在绘制点时有效,因此必须首先使用超文本标签绘制点,然后绘制图像:

unset key
set cbrange [0:6]
set xrange [0:10]
set yrange [0:5]
set size ratio -1
set cbtics out nomirror
set palette maxcolors 12 model RGB defined (0 '#1a9641', 1 '#a6d96a', 2 '#ffffbf', 3 '#fdae61', 4 '#d7191c')
$map1 << EOD
5.5 4.0 3.5 1.0 0.5 5.0 4.5 3.0 1.5 0.0
2.0 2.5 0.0 5.5 5.5 4.5 3.0 0.5 0.0 1.5
0.5 0.0 0.5 5.5 5.5 0.0 0.5 0.0 1.5 0.0
0.0 0.5 0.0 2.5 3.0 0.5 0.0 0.5 2.0 3.5
0.5 1.0 2.5 4.0 3.5 2.0 2.5 0.0 0.5 1.0
EOD
plot '$map1' using ($1+0.5):($2+0.5):(sprintf("%.1f", $3)) matrix with labels hypertext point pointsize 6,\
     '$map1' using ($1+.5):($2+.5):($3) matrix with image

使用pointsize来改变悬停区域的大小。