【前端可视化】3d-force-graph 3d力导向图(知识图谱相关)配置和使用

这篇具有很好参考价值的文章主要介绍了【前端可视化】3d-force-graph 3d力导向图(知识图谱相关)配置和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图

3d-force-graph文档,前端可视化,知识图谱,前端,3d,人工智能

文档

可以先去官网看看文档或者看看我下面的参考博客,把基本配置看懂(英语差的同学可以看下面的翻译)。3d-force-graph使用及相关设置github.com/vasturiano/3d-force-graph3d-force-graph:文档翻译

配置

// 初始化 3d
function threeInit() {
  const relationData = _.cloneDeep(props.echartsData);
  const data = {
    links: relationData.edges,
    nodes: relationData.nodes,
  };
  const elm: any = document.getElementById("3d-graph");
  const width = elm.offsetWidth;
  const height = elm.offsetHeight;
  let CSS2DRendererItem: any = new CSS2DRenderer();
  Graph = ForceGraph3D({
    extraRenderers: [CSS2DRendererItem],
  })(elm).graphData(data);
  Graph.numDimensions(3) // 维度 3 就是 3d
    .width(width)
    .height(height)
    .backgroundColor("#f3f5fa")
    .showNavInfo(false)
    /* 节点配置 */
    .nodeRelSize(8)
    .nodeColor((node: any) => colorMap[node.label])
    .nodeOpacity(1)
    .nodeResolution(30) // 节点分辨率
    .nodeLabel((node: any) => `<div class='node-label2'>${node.name}</div>`)
    .nodeThreeObjectExtend(true)
    .nodeThreeObject((node: any) => {
      const nodeEl = document.createElement("div");
      nodeEl.textContent = node.name;
      nodeEl.className = "node-label";
      nodeEl.style.color = colorMap[node.label];
      return new CSS2DObject(nodeEl);
    })
    .onNodeHover((node: any) => {
      elm.style.cursor = node ? "pointer" : null;
    })
    .onNodeClick((node: any) => {
      // 首页点击节点聚焦
      if (store.routerName === "home" && node.name !== focusNodeName) {
        focusNodeName = node.name;
        focusNode(node);
      }
      // 故障推理点击节点
      if (store.routerName === "fault") {
        tempNode = node;
        emit("nodesClcik", node);
      }
    })
    /* 边配置 */
    .linkLabel((link: any) => {
      return `<div class='link-label'>${lineTextMap[link.type]}</div>`;
    })
    .onLinkHover((node: any) => {
      elm.style.cursor = node ? "pointer" : null;
    })
    .linkDirectionalArrowLength(3) // 边的指向箭头长度
    .linkDirectionalArrowRelPos(1) // 边的标签显示(鼠标滑到边上显示)
    .linkColor((link: any) => "#727279")
    .linkOpacity(1);

  cameraCenter();
}
// 聚焦 3d 节点
function focusNode(node: any) {
  const distance = 200;
  const distRatio = 1 + distance / Math.hypot(node.x, node.y, node.z);
  Graph.cameraPosition(
    {
      x: node.x * distRatio,
      y: node.y * distRatio,
      z: node.z * distRatio,
    }, // new position
    node, // lookAt ({ x, y, z })
    2000 // ms transition duration)
  );
}
// 3d 镜头拉近
function cameraCenter(x: any = -300, y: any = 30, z: any = 30) {
  Graph.cameraPosition({
    x: x,
    y: y,
    z: z,
  });
}

参考博客

3D知识图谱可视化3d-force-graph示例学习记录在Vue中使用3d-force-graph渲染neo4j图谱文章来源地址https://www.toymoban.com/news/detail-718508.html

到了这里,关于【前端可视化】3d-force-graph 3d力导向图(知识图谱相关)配置和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 优化算法3D可视化

    分别画出  和  的3D图 这段代码我试了老师给的代码,不对劲,不能动,而且没有轨迹,更过分就是一会儿就自动关闭了,还有再优化优化 改了一上午,终于好了,我修改了 以下是我的代码:   用网页做的竟然还带水印  不在意水印的推荐 1、 SGD    SGD从图像上来看,呈现

    2024年02月03日
    浏览(37)
  • QtDataVisualization 数据3D可视化

            Data Visualization的三维显示功能主要由三种三维图形来实现,分别是三维柱状图Q3DBars,三维空间散点Q3DScatter,三维曲面Q3DSurface。这三个类的父类都是QAbstract3DGraph,从QWindow继承而来。         Data Visualization与Qt Charts类似都是基于Qt Graphics View的图形视图结构,所以

    2024年02月14日
    浏览(38)
  • Python 3D可视化(一)

    本篇目录: 一、写在前面的话 二、简介 三、环境安装 四、python 3D实例集锦 (1)、圆柱体 (2)、箭头 (3)、球形 (4)、平面 (5)、线型 (6)、立方体 (7)、圆锥体 (8)、六边形 (9)、空心六边形 (10)、茶壶 (11)、兔子 (12)、飞机 五、总结   作者:北宋苏

    2023年04月12日
    浏览(43)
  • 【数据可视化】2D/3D动画

    ◼ CSS3 transform属性允许你旋转,缩放,倾斜或平移给定元素。 ◼ Transform是形变的意思(通常也叫变换),transformer就是变形金刚 ◼ 常见的函数transform function有: ---- 平移:translate(x, y) ---- 缩放:scale(x, y) ---- 旋转:rotate(deg) ---- 倾斜:skew(deg, deg) ◼ 通过上面的几个函数,我们

    2024年02月08日
    浏览(36)
  • Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、文本编辑器,富文本、Markdown,3D组件库】

    1)Vant ui 🔸有赞移动 UI 组件库,支持 Vue2/3 微信小程序,支付宝小程序 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/col Vant 是由有赞前端团队开发的一套基于 Vue.js 的移动端 UI 组件库,它包含了丰富的组件和功能,可以帮助开发者快速构建高质量的移动应用。Vant 以简洁易用和高质量

    2024年02月07日
    浏览(40)
  • Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、文本编辑器,富文本Markdown,3D组件库】

    1)Vant ui 🔸有赞移动 UI 组件库,支持 Vue2/3 微信小程序,支付宝小程序 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/col Vant 是由有赞前端团队开发的一套基于 Vue.js 的移动端 UI 组件库,它包含了丰富的组件和功能,可以帮助开发者快速构建高质量的移动应用。Vant 以简洁易用和高质量

    2024年02月07日
    浏览(39)
  • 神经网络的可视化:使用3D可视化和交互式界面来展示模型

    作者:禅与计算机程序设计艺术 作为人工智能领域的从业者,我们常常需要与其他技术人员或者领域内的专家进行交流。在这个过程中,一个关键的问题是如何让复杂的神经网络模型变得易于理解和分析。今天,我们将探讨如何使用3D可视化和交互式界面来展示神经网络模型

    2024年02月14日
    浏览(36)
  • python可视化——3D柱形图

       

    2024年02月06日
    浏览(35)
  • 三维可视化平台有哪些?Sovit3D可视化平台怎么样?

    随着社会经济的发展和数字技术的进步,互联网行业发展迅速。为了适应新时代社会发展的需要,大数据在这个社会经济发展过程中随着技术的进步而显得尤为重要。同时,大数据技术的快速发展进程也推动了可视化技术的飞速发展,国内外各类可视化工具软件平台如雨后春

    2024年02月13日
    浏览(38)
  • 【Open3D可视化——添加标签】:如何在Open3D的可视化窗口中添加文字标签?

    【Open3D可视化——添加标签】:如何在Open3D的可视化窗口中添加文字标签? Open3D是一个基于Python语言开发的跨平台开源工具包,主要用于三维数据处理和可视化。在进行三维数据可视化过程中,往往需要在场景中添加标签来标识物体、点云等信息。本文将介绍如何在Open3D的可

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包