d3 - 将元素附加到外部 SVG 文件

2023-12-20

我有一个图形想要加载为 d3 可视化的背景(或者简单地作为svg我可以附加circle元素)。插图位于svg格式。我尝试将其加载到我的html文件的方式允许我将元素(例如圆圈)附加到(或顶部)svg文件或到div这是我尝试过的两种方法:

<script>

d3.xml("bal.svg", "image/svg+xml", function(xml) {
  document.body.appendChild(xml.documentElement);
});

var circle = svg.append("circle")
                .attr("cx", 100)
                .attr("cy", 100)
                .attr("r", 20)
                .style("fill", "red");

</script>

svg 图像看起来非常好,但没有出现圆圈。在火狐浏览器中,html对于外部的svg文件显示为:

<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
width="250px" height="250px" viewBox="0 0 250 250" 
enable-background="new 0 0 250 250" xml:space="preserve">

我也尝试过:

<div id="htmlEmbed"></div>

<script>

d3.select("#htmlEmbed")
.append("object")
.attr("data", "tba2.svg")
.attr("width", 500)
.attr("height", 500)
.attr("type", "image/svg");

d3.select("#htmlEmbed")
.append("circle")
.attr("cx", 600)
.attr("cy", 600)
.attr("r", 20)
.style("fill", "red"); 

同样,svg 图像看起来非常好,但没有出现圆圈。在这种情况下,html 在浏览器中显示为:

<object width="500" height="500" data="tba2.svg" type="image/svg">
#document
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
width="500px" height="500px" viewBox="0 0 250 250" 
enable-background="new 0 0 250 250" xml:space="preserve"> … </svg>
</object>

我感觉这应该很简单,但我不知道。任何帮助将不胜感激。


您尝试过的代码有两个问题。首先,您需要定义svg其次,您需要在加载 SVG 后执行修改 SVG 的代码。由于异步的性质d3.xml, 此情况并非如此。

所以你需要运行的代码是这样的。

d3.xml("http://openvz.org/images/1/17/Warning.svg", function(xml) {
  document.body.appendChild(xml.documentElement);

  var circle = d3.select("svg").append("circle")
            .attr("cx", 100)
            .attr("cy", 100)
            .attr("r", 20)
            .style("fill", "red");
});

工作小提琴(模安全限制)here http://jsfiddle.net/Jw2f8/8/.

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

d3 - 将元素附加到外部 SVG 文件 的相关文章

随机推荐

  • 无法在 MySQL 5.7 中添加外键(引用表中缺少约束)

    我正在尝试运行外键添加查询 如下所示 外键检查设置为 0 两个表中的列完全相同 此外 两者都是主键 这里的解决方案都没有帮助解决这个问题 我在本地主机上 mysql gt alter table deliveryaddress gt add
  • 如何从 b 树中删除元素?

    我正在尝试了解 b 树 我能找到的每个来源似乎都忽略了有关如何从树中删除元素同时保留 b 树属性的讨论 有人可以解释该算法或向我指出可以解释其工作原理的资源吗 维基百科页面上有对此的解释 B 树 删除 http en wikipedia o
  • 在发生未处理的异常后,我可以将执行返回到失败的方法吗?

    我有一个 ASP NET 网站 其中包含一些 WCF 服务 我已连接到 Application Error 事件 因此可以记录任何未处理的异常 我真正想做的是将执行传递回被调用的方法 这样我就可以向客户端返回一些有意义的内容 而不是抛出Fa
  • 将按结果分组保存到单独的 CSV 文件中

    我有一个代码 用于使用 CSV 数据创建组并使用该组创建新文件 我读取了 csv 文件 然后使用它 问题是当我的函数工作并使用数据创建新文件时 新文件的名称是组的名称 我不希望这样 ID Inventory Domain Requests
  • Android从缩略图获取图像路径?

    我正在尝试为目前市场上的我的应用程序提供关键更新 我需要查询 MediaStore 中的缩略图 并将缩略图加载到 GridView 中 到目前为止一切顺利 现在我只需要根据我所拥有的内容 即缩略图的路径 获取用户外部存储上实际全尺寸图像的路
  • Oracle复制数据到另一个表

    在Oracle中 我将数据从备份复制到新表 但不起作用 正确的语法是什么 Thanks select CODE MESSAGE into EXCEPTION CODES CODE MESSAGE from Exception code tm
  • 为什么 sizeof(std::mutex)==40 (gcc,clang,icc)? [复制]

    这个问题在这里已经有答案了 而不是sizeof std atomic
  • 使用 SvelteKit 将图像放置在哪里

    我已经使用 Svelte 一段时间了 现在我已切换到 SvelteKit 这样我就可以添加多个页面 我想向我的网站添加一些图像 但我不知道将它们放在哪里 在 Svelte 中我会把它们放进去public images但没有public带有
  • 在 Android 上的 AAC 流中查找

    我从 HTTP 服务器获取 AAC 流并将其用作MediaPlayer在安卓中 它运行得很好 但是当我尝试执行时mediaPlayer seekTo int position 我收到以下错误大约一百万次 WARN AACDecoder 13
  • 处理 PowerShell 脚本中的命令提示符错误

    我正在尝试运行一些命令提示符命令 例如schtasks在 PowerShell 脚本中 我想知道如何处理 PowerShell 中命令引发的错误 I tried cmd exe c schtasks Query TN xx echo ERR
  • System.Messaging - 为什么 MessageQueue 不提供 Send 的异步版本

    有人知道为什么 System Messaging 不提供异步版本的 Send 方法来将 MSMQ 消息发送到队列 实际上有 Peek 和 Receive 方法的异步版本 通过可以转换为 C 5 异步等待方法的 Begin End 对 但令人
  • 初始化一个sqlite数据库android

    大家好 我对 Android 开发还很陌生 我想向我的应用程序添加一个数据库 问题是我不知道如何仅初始化整个表一次 我读了很多书 发现你可以做到 的压倒性作用onCreate SQLiteDatabase db 辅助类中的方法 这些是我的数
  • 全局 Jest SpyOn 函数不调用原始函数

    我希望有人能帮助我理解 js 原型的交互性和jest spOn 我有一个小例子 文件中的示例类TestObj ts export default class TestObj foo Do Something e g console log
  • iOS 7 模拟器日语键盘词典位于哪里?

    这个问题和这个有点相似 如何在 iPhone 模拟器上启用日语键盘 https stackoverflow com questions 8051141 how do i enable the japanese keyboard on the
  • 为什么需要多个shared_future对象来同步数据

    指向数据结构的指针通过以下方式与多个线程共享std promise and std shared future 从书中 C 并发实践 作者 Anthony Williams 第 85 86 页 似乎只有当每个接收线程使用副本时 数据才会正确
  • 如何以编程方式显示或隐藏 Outlook 信封图标?

    例如 如何在 Outlook 规则中显示或隐藏 Outlook 信封图标 信封图标选项可通过以下位置设置 工具 gt 选项 电子邮件选项 高级电子邮件选项 在通知区域显示信封图标 我之所以说以编程方式是因为没有任何标准规则操作适用 清除消息
  • 提高 Python 中超大型字典的性能

    我发现如果我在开始时初始化一个空字典 然后在for循环中向字典中添加元素 大约110 000个键 每个键的值是一个列表 也在循环中增加 速度会下降for 循环继续 我怀疑问题是 字典在初始化时不知道键的数量 并且它没有做一些非常聪明的事情
  • 如何处理错误“由于 @netlify/plugin-deploy-core 插件中的错误而导致部署失败。”?

    我在将 Next js 项目部署到 Netlify 时遇到问题 昨天运行良好 但现在我在部署时遇到错误 Here I attached error log screenshot and full log 11 40 08 AM Build
  • AutoMapper 不会将计算字段映射到标量

    我试图将我的 MVC3 项目分离到适当的 DAL Domain ViewModel 架构中 但我遇到了 AutoMapper 和将计算字段从我的域映射到我的视图模型的问题 这是我正在尝试做的事情的一个例子 界面 public interfa
  • d3 - 将元素附加到外部 SVG 文件

    我有一个图形想要加载为 d3 可视化的背景 或者简单地作为svg我可以附加circle元素 插图位于svg格式 我尝试将其加载到我的html文件的方式允许我将元素 例如圆圈 附加到 或顶部 svg文件或到div这是我尝试过的两种方法