如何在Gnuplot散点图中显示鼠标悬停/悬停的第三个数据列中的标签?

时间:2012-11-07 12:28:41

标签: mouseover gnuplot

我有一个gnuplot数据文件:

Requested_width,Requested_depth,Requested_word,Name,N,M,Cycle_time,Clk2Q,Area,Total_Area
24,512,24,R1F512X24M8P24,1,1,1.9820,,7446.102,7446
24,512,24,R1F512X24M4P24,1,1,1.9937,,6757.0596,6757
....

我想分散第7列和第9列(我可以这样做!),然后当鼠标悬停在数据点上时,我希望第4列中的名称出现。我认为在任何时候都要出现所有标签会太杂乱。

2 个答案:

答案 0 :(得分:5)

这在gnuplot4.7(当前的开发分支)中是完全可能的,但在以前的版本中没有 - 当从交互式提示输入时,以下工作正常:

set term wxt
set termoption enhanced
set datafile sep ','
plot 'test.dat' u 7:9:4 w labels hypertext point pt 7

如果将其放在脚本中,则需要将gnuplot调用为gnuplot -persist script.gp

答案 1 :(得分:2)

只需使用超文本并指定正确的终端,就可以使超文本工作。

1)您需要使用超文本,如GNUPlot手册link中所述,第122页:

set label at 0,0 "Plot origin" hypertext point pt 1
plot 'data' using 1:2:0 with labels hypertext point pt 7 \
title 'mouse over point to see its order in data set'

2)目前有3个术语支持超文本:canvas(HTML5),svg和wxt。 我们以画布为例,在手册的第182页,有一个例子向您展示如何使用画布:

set term canvas name 'fishplot'
set output 'fishplot.js'

最小的HTML文件:

<html>
<head>
  <script src="canvastext.js"></script>
  <script src="gnuplot_common.js"></script>
</head>
<body onload="fishplot();">
  <script src="fishplot.js"></script>
  <canvas id="fishplot" width=600 height=400>
    <div id="err_msg">No support for HTML 5 canvas element</div>
  </canvas>
</body>
</html>