带 SVG 终端的 Gnuplot 4.7 超链接和超文本

2023-11-30

我正在 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 的新手,但尝试快速提升。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带 SVG 终端的 Gnuplot 4.7 超链接和超文本 的相关文章

  • 如何始终将焦点保持在画布上?

    我一直在这个论坛寻找解决方案 但尚未找到 无论我在页面上的哪个位置单击 我都需要始终将焦点放在画布元素上 我有几个按钮 在每个 onclick 事件中我写 document getElementById canvas focus 这确实有效
  • 是否可以像 html 视频元素一样将流作为源添加到 html canvas 元素?

    根据MDN The HTMLMediaElement https developer mozilla org en US docs Web API HTMLMediaElement界面添加到HTMLElement属性 支持基本媒体相关功能所
  • 在 d3 中应用转换时出现错误

    我正在尝试对我在 d3 中设计的条形图应用一些过渡效果 这是我的代码 svg selectAll bar data data enter append g attr class bar append rect attr rx barRadi
  • 在 Jade 模板中包含 SVG xml

    是否可以创建一个 Jade mixin 它从文件系统读取文件 并将其回显到渲染的 HTML 中 我试过这个 mixin svg file var fs require fs var xml fs readFileSync file div
  • SVG 在 Firefox 中渲染得很糟糕

    我正在制作带有滑动轮播的信息图表 li 我认为 尽管 FF 中 SVG 的错误已得到解决 但 SVG 在 Firefox 中显示为像素化 有人能看到这个问题的解决办法吗 URL http weaver wp weavertest com r
  • 我应该如何格式化 .dat 文件以便制作 3D 矢量图?

    我正在为大学做这个编程任务 我们必须写一个c 计算 3D 空间中某些线圈的磁场矢量的程序 我已经成功编写了这个程序 并且我认为它运行得很好 不过 我想添加一个特殊的东西 这是我的试卷 所以它必须特别好 我想绘制出向量 我习惯打电话gnupl
  • JavaScript 原型继承和 html canvas

    我是一名 Ruby 开发人员 最终决定认真学习 JavaScript 所以我买了一些书 开始深入研究 但当我试图理解原型继承时 我很快就陷入了困境 这本书的例子之一如下 给定一个 Shape 其原型有一个绘制方法 以及两个子形状 一个 Tr
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • 在 Gnuplot 中填充数据曲线下方的几个部分

    我有一组点 数据 定义一条曲线 我想用贝塞尔曲线平滑绘制该曲线 所以我想填充一些 x 值对之间的曲线下方的区域 如果我只有一对 x 值 那么这并不困难 因为我定义了一组新数据并用 fillcu 绘制它 例子 问题是我想在同一个情节中多次这样
  • 底部带有三角形的 div 和背景图像

    我想做一个div 有一个底部的三角形 但我需要三角形上的背景图像为了出现 我尝试使用伪元素 after 但它不起作用 homebg after content position absolute top 100 left 0 right 0
  • Safari 滚动条和 SVG

    问题 Safari 无法正常工作 而是使用滚动条渲染我的 SVG 图像 问题的改进版本 如何填充设定的宽度并根据 Safari 中的宽高比计算高度 感谢普罗格兹 相关代码 SVG File viewBox 0 0 800 800 未指定高度
  • 为 iOS 应用程序加载基于 SVG 的图像资源

    我从 thenounproject 购买了一个图标作为 SVG 图像 然后我使用一个名为的 macOS 程序Gapplin http gapplin wolfrosch com 将此 SVG 导出为 PNG 图像 它显示为 100x100
  • 当使用公式生成超链接时,VBA 打开 Excel 超链接不起作用

    使用公式生成的 Excel 超链接似乎存在错误 我使用的是 Excel 2010 我有一个电子表格 其中的单元格包含 URL 我的目标是执行以下两件事 将这些单元格变成超链接 创建一个键盘快捷键来打开这些超链接 这样我就不必使用鼠标了 为了
  • Django REST Framework:何时创建超链接资源以及何时创建嵌套资源?如何发布嵌套资源?

    我正在使用 Django REST 框架构建 REST Web API 事情进展顺利 但我偶然发现了嵌套资源的问题 起初 REST API 中的所有关系都是超链接的 例如 一篇文章看起来像这样 path http api myproject
  • 如何在画布上所有其他内容后面绘制图像? [复制]

    这个问题在这里已经有答案了 我有一块画布 我想用drawImage在画布上当前内容后面绘制图像 由于画布上已经有内容 我正在使用字面上的画布来创建包含图像的画布 因此我无法真正先绘制图像 所以我无法使用drawImage在我呈现其余内容之前
  • d3.event.translate 在触摸设备的缩放上包含 NaN

    我使用 d3 为我的 svg 编写了一个自定义缩放函数 如下所示 Zoom behavior function myzoom xpos d3 event translate 0 ypos d3 event translate 1 vis a
  • WPF画布性能-children.add调用多次

    我在长画布上绘制了很多线条 想想条形图 并对其性能进行了相当好的调整 使用低级几何类并冻结它们等 这极大地提高了性能 但仍然需要几秒钟将几千个项目加载到画布中 我对应用程序进行了性能分析 看起来每次调用都花费了很大一部分时间canvas c
  • 电子邮件链接在 Android 上不起作用

    我有 HTML 格式的点击电子邮件链接的代码 它在我的电脑上运行良好 但在移动设备上不起作用 我只有 Android 所以我不知道问题是否仅在 Android 上或所有移动设备上 当我按下链接时 浏览器显示 网页无法显示 邮寄至 电子邮件受
  • html canvas动画卡顿

    谁能解释为什么提供的画布动画断断续续 我创建了一个测试存根来演示该问题 我在桌面上的 FF Chrome IE 以及 Android 上的 FF 和 Chrome 中看到了卡顿现象 口吃是由于垃圾收集造成的吗 似乎 raf 在每次调用时都会
  • 有没有办法将 SWF 转换为 SVG 格式?

    有没有办法将 FLA 或 SWF 转换为 SVG 格式 它可以是一个软件吗 或者甚至是网络转换器 我尝试了一些方法 但没有一个有效 所有这些似乎都已经过时了 不 SWF 支持的功能太多 而 SVG 格式无法创建有效的 SWF 版本 如果您只

随机推荐

  • 预声明所有私有/局部变量?

    这可能是一个基本问题 但它让我想了很长一段时间 我应该将所有私有 局部变量声明为私有吗 或者这仅对 重要 变量是必要的 例如 我有计算的 临时 结果 我应该预先声明这个变量吗 希望有人能指出这一点 既然你说的是private protect
  • Google App Engine 自动随机重启

    我们在 GAE 上运行节点服务器 由于某种原因 我们的服务器每天会离线几次 有时可能需要几分钟才能恢复在线 全天的请求都是相同的 也没有例外会导致重新启动 没有请求激增或任何可能导致这种情况的特殊请求 发生时记录 2020 04 18T23
  • 从泽西岛的 URI 获取处理程序?

    里面一个ContainerResponseFilter我想得到 处理程序 即所在的班级 Path和 GET PUT 带注释的方法与我将提供的 URL 匹配 Example someJerseyVariable getHandlerForUR
  • 计算div标签的平均高度和平均宽度

    我需要获取 html 文档的平均 div 高度和宽度 我已经尝试过这个解决方案 但它不起作用 import numpy as np average width np mean div attrs width for div in my do
  • UITextField 格式为 xx-xx-xxx

    我正在使用 UITextField 我希望它应该采用 xx xx xxx 数字格式的字符 有什么帮助吗 需要对具有可变格式的电话号码很好地做到这一点 这就是我写的 随意重用 首先 我有一种过滤格式化字符串的方法 其中 是数字 任何其他字符都
  • 虚拟化 ItemControl?

    我有一个ItemsControl但是包含我想要虚拟化的数据列表VirtualizingStackPanel IsVirtualizing True 似乎不适用于ItemsControl 确实是这样吗 还是有另一种我不知道的方法可以做到这一点
  • 使用委托在视图控制器之间进行通信

    在提出一些问题后 我学会了如何将订单从一个视图控制器发送到另一个视图控制器 并设法编写其工作代码 但没有任何反应 在我的项目中 我有两个视图控制器 名为sayfa1 and sayfa23 当按钮位于sayfa1单击它将打开sayfa23并
  • 如何使用dom解析器java解析xml中的同名标签?

    如何使用dom解析器java解析xml中的相同名称标签 我有以下 xml 文件 我想使用 java 中的 dom 解析器来解析该文件
  • scanf("%c") 自动读取 10

    void main int cnt 1 char i while cnt lt 4 printf nenter the character scanf c i if i gt 64 i lt 91 printf ncharacter is
  • 用于标记代码的 Eclipse 插件

    有没有Eclipse插件可以标记代码 就像用荧光笔一样 有人知道这是否可能吗 您可以用书签标记要突出显示的行 然后设置背景颜色以突出显示书签 你必须进去 preferences gt General gt Editors gt Text E
  • TypeORM 查找 where 条件 AND OR 链接

    我正在尝试使用存储库查找来编写查询 但似乎没有找到适合我的查询的解决方案 我知道这可以通过查询生成器或 Raw 条件实现 但如果可能的话 我想使用存储库查找 我想要达到的条件是字段1 字符串 AND 字段2为空OR字段2 gt 日期 目前唯
  • 合并两个相同类型的案例类,除了某些字段

    如果您有这样的案例类 case class Foo x String y String z String 你有两个实例 例如 Foo x1 y1 z1 Foo x2 y2 z2 是否可以将实例 1 合并到实例 2 中 除了字段 z 之外 结
  • 在 Android 中使用 cURL

    我想在我的 android 应用程序中以本机代码使用 cURL 库 使用最新的 NDK r5b 经过在线研究后 似乎在 android 中使用 cURL 的唯一方法是构建包含curl 的整个 android 源代码树 并且以某种方式生成 c
  • iDevice for Dummies:一台设备可以分配多个配置(个人/企业)吗? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 是否可以为一个 iDevice 分配多个规定 老实说
  • 触发器从另一个表更新总和 MySQL

    我有一个数据库 用于跟踪我所在联赛的统计数据和平均值 我有一个结果表和一个排名表 我将结果中的 分数 添加到排名中的总体 分数 中 我目前有一个查询 它成功地将结果中的分数添加到积分表中 但是 当我添加新结果时 排名不会更新 这是我的查询
  • C / C++ / C#:如何执行“mount -a”

    问题 在 C C C 中 我需要 C 但 C 和 C 也可以 如何在 Linux 上执行 mount a 我的意思是 以编程方式 without开始一个像这样的过程 system mount a Edit 注意 a 我的问题实际上不是关于如
  • Express.JS:将 cookie 附加到静态提供的内容

    我使用 Express JS 来提供静态内容 express use express static When index html服务完成后 我想在响应旁边发送一个 cookie 指示用户是否已登录 通常应该使用res cookie 但我不
  • 如何将厨师食谱中的一种资源的价值传递到另一种资源?

    我正在尝试更改一个资源中的属性 并希望在另一资源中使用更新后的值 但更新后的值未反映在另一资源中 请帮我 Code node oracle asm disks each key do disk Chef Log info I am in c
  • 如何从命令行将参数传递给 Makefile?

    如何从命令行将参数传递给 Makefile 我明白我能做到 make action VAR value value with Makefile VAR default action echo VAR 我如何获得以下行为 make actio
  • 带 SVG 终端的 Gnuplot 4.7 超链接和超文本

    我正在 Gnuplot 4 7 中使用 SVG 终端 并尝试在浏览器上同时使用超文本和超链接 分别通过鼠标悬停和鼠标单击绘制的数据点来激活 鼠标悬停的工作原理要感谢 stackoverflow 对我上一个问题的帮助 我的数据输入文件如下所示