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

6

我有一个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列中的名称出现。我认为始终显示所有标签会显得太杂乱无章。


相关:还可以点击该链接以跳转到以下页面:https://stackoverflow.com/questions/23022545/gnuplot-4-7-hyperlink-hypertext-with-svg-terminal - Ciro Santilli OurBigBook.com
2个回答

6
在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

2
http://gnuplot.sourceforge.net/demo_canvas_4.7/hypertext.html 展示了类似我想要做的东西。 - user1806063
非常感谢。不幸的是,它对我没有起作用,终端在我们的设置中是未知的,关键词超文本也是未知的:( Google图表取得了成功,但还是谢谢你的回复。 - user1806063
@user1806063 -- 你使用的是哪些终端(以及gnuplot的哪个版本)?你可以通过print GPVAL_VERSION来查找版本号(或者在交互式启动gnuplot时直接阅读文本)。目前根据文档,唯一能够允许它工作的终端是 wxt, canvas (我从未使用过)和 svg. 但是我猜想如果关键字无法识别,则您可能正在使用旧版本的gnuplot。(4.7甚至还没有发布) - mgilson
我们目前在4.0版本,十分抱歉之前你提到4.7时我没有想到要确认一下。终端类型: 可用终端类型: aed512 AED 512 终端 aed767 AED 767 终端 aifm Adobe Illustrator 3.0 格式 bitgraph BBN Bitgraph 终端 cgm 计算机图形元文件 corel CorelDRAW 的 EPS 格式 dumb 打印机或玻璃哑终端 dxf AutoCad 的 dxf 文件 (默认大小为120x80) - user1806063
我没有足够的声望来点赞。 无论如何,谢谢。Google图表似乎对我想要的东西足够好了,这是一个相当基本的数据绘图,我只想要一些用户可以玩耍的东西。 - user1806063
显示剩余5条评论

2

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

1)您需要按照GNUPlot手册链接第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) 目前有三种支持超文本的术语:canvas(HTML5)、svg和wxt。以canvas为例,在手册的第182页上,有一个示例展示如何使用canvas:

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>

现在,output 应该是一个 HTML 文件,因为 gnuplot 已经生成了所需的 JavaScript 核心周围的包装 HTML。 - underscore_d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接