我正在 Gnuplot 4.7 中使用 SVG 终端,并尝试在浏览器上同时使用超文本和超链接,分别通过鼠标悬停和鼠标单击绘制的数据点来激活。鼠标悬停的工作原理要感谢 stackoverflow 对我上一个问题的帮助。
我的数据输入文件如下所示:
X Y 标签颜色超链接
0 0 net0 2 net0.txt
1 1 net1 2 net1.txt
2 2 net2 2 net2.txt
3 4 net3_outlier 1 outlier.txt
4 4 net4 2 net4.txt
我的脚本 script.gp 如下所示:
set terminal svg/canvas enhanced mousing
set palette model RGB defined (0 'blue', 1 'red', 2 'green')
plot 'test.txt' using 1:2:3:4 with labels hypertext point pt 7 ps var lc variable
Result:我可以根据文件中的第四列和文件中第三列的悬停超文本标签将绘图颜色设置为红色和绿色。我的尝试是让数据中的第 5 列成为从图中的点到文件的超链接。因此,将鼠标悬停在该点上,显示超文本并单击它应该打开超链接..这可能吗?如果需要的话,我可以对生成的 html 文件进行后处理,只是不知道要添加什么以及在哪里添加。
Testing:我正在使用 gnuplot 4.7 和 firefox 5.0
输出 html 文件如下所示:我在这里看到一些参考资料,但无法确定是否可以在此处添加指向文件的超链接。另外,我更喜欢 Canvas,因为它显示了鼠标坐标的 XY 表。
<g id="gnuplot_plot_1" ><title>gnuplot_plot_1</title>
<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
<g onmousemove="gnuplot_svg.showHypertext(evt,'net0')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(45.6,444.0) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net1')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(89.7,411.5) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net2')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(133.8,379.0) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net3')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(178.0,346.5) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net4')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(222.1,314.0) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net5')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(266.2,281.5) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net7')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(354.4,216.6) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net_outlier')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(354.4,151.6) scale(4.50)' color='red'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net8')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(398.5,184.1) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net9')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(442.7,151.6) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net10')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(486.8,119.1) scale(4.50)' color='green'/></g>
<g onmousemove="gnuplot_svg.showHypertext(evt,'net11')" onmouseout="gnuplot_svg.hideHypertext()"><title> </title>
<use xlink:href='#gpPt6' transform='translate(530.9,86.6) scale(4.50)' color='green'/></g>
</g>
</g>
帮助表示赞赏。我是 Gnuplot 的新手,但尝试快速提升。