Vue 力导图d3js 实现

news/2024/5/17 12:42:06/文章来源:https://blog.csdn.net/zhou8622/article/details/127019326

PowerBI 自定义组件推荐用D3JS 实现,实现一个PowerBI 的力导图组件,为调试方便,先用Vue 实现一个,然后再移植到PowerBI 中,话不多说,上效果:
在这里插入图片描述
体验入口

上代码是最好的老师:

<template>
<div><div id="force-container"></div>
</div></template><script>
import { defineComponent } from 'vue';
import * as d3 from "d3";
var color=d3.schemeCategory10;var nodes = [{"name":"爱情公寓"},{"name":"曾小贤"},{"name":"胡一菲"},{"name":"吕子乔"},{"name":"陈美嘉"},{"name":"关谷神奇"},{"name":"唐悠悠"},{"name":"陆展博"},{"name":"林宛瑜"},{"name":"张伟"},{"name":"诸葛大力"},{"name":"秦羽墨"},{"name":"诺澜"},{"name":"Lisa榕"},{"name":"杜俊"},{"name":"赵海棠"},{"name":"咖喱酱"}];
var links = [{"source":1,"target":0,"relation":"租户"},{"source":2,"target":0,"relation":"租户"},{"source":3,"target":0,"relation":"租户"},{"source":4,"target":0,"relation":"租户"},{"source":5,"target":0,"relation":"租户"},{"source":6,"target":0,"relation":"租户"},{"source":7,"target":0,"relation":"租户"},{"source":8,"target":0,"relation":"租户"},{"source":9,"target":0,"relation":"租户"},{"source":10,"target":0,"relation":"租户"},{"source":11,"target":0,"relation":"租户"},{"source":15,"target":0,"relation":"租户"},{"source":16,"target":0,"relation":"租户"},{"source":1,"target":2,"relation":"夫妻"},{"source":1,"target":13,"relation":"上下级"},{"source":1,"target":12,"relation":"同事&喜欢"},{"source":2,"target":7,"relation":"姐弟"},{"source":2,"target":11,"relation":"同学"},{"source":2,"target":12,"relation":"情敌"},{"source":3,"target":4,"relation":"夫妻"},{"source":3,"target":6,"relation":"小姨妈/大外甥"},{"source":3,"target":13,"relation":"暗恋"},{"source":4,"target":6,"relation":"闺蜜"},{"source":5,"target":6,"relation":"夫妻"},{"source":5,"target":14,"relation":"师兄弟"},{"source":7,"target":8,"relation":"情侣"},{"source":9,"target":10,"relation":"情侣"},{"source":9,"target":15,"relation":"情敌"},{"source":9,"target":16,"relation":"助理"},{"source":10,"target":15,"relation":"同学"},{"source":10,"target":2,"relation":"师生"},{"source":15,"target":10,"relation":"追求"},{"source":15,"target":2,"relation":"师生"},{"source":13,"target":12,"relation":"同学"}];export default defineComponent({mounted() {      this.drawBarChart(nodes,links);      },methods:{drawBarChart(nodes,links){var w=window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth;var h=window.innerHeight|| document.documentElement.clientHeight|| document.body.clientHeight;w=w*0.98;h=h*0.9;var svg=d3.select("#force-container").append("svg").attr("width",w).attr("height",h*1.1);var forceSimulation = d3.forceSimulation().force("link",d3.forceLink()).force("charge",d3.forceManyBody().strength(-600))//.force("collide", d3.forceCollide(100).strength(0.2).iterations(5)).force("center",d3.forceCenter(w/2,h/2));forceSimulation.nodes(nodes).on("tick");forceSimulation.force("link").links(links).distance(200);var link=svg.selectAll(".link").data(links).enter().append("line").attr("class","link").style("stroke-width",2).style("stroke",(d,i)=>color[i%10]).style("opacity",0.6);var node=svg.selectAll(".node").data(nodes).enter().append("circle").attr("r",20).style("fill",(d,i)=>color[i%10]).call(drag()); forceSimulation.on("tick",()=>{link.attr("x1",d=>d.source.x).attr("y1",d=>d.source.y).attr("x2",d=>d.target.x).attr("y2",d=>d.target.y);node.attr("cx",d=>d.x).attr("cy",d=>d.y);edges_text.attr("x",d=>(d.source.x + d.target.x) / 2 ).attr("y",d=>(d.source.y + d.target.y) / 2 );texts.attr("x",d=>d.x).attr("y",d=>d.y);});function drag(){function dragstarted(event,d){if(!event.active)   forceSimulation.alphaTarget(0.3).restart();d.fx=d.x;d.fy=d.y;}function dragged(event,d){d.fx=event.x;d.fy=event.y;}function dragended(event,d){if(!event.active)   forceSimulation.alphaTarget(0);d.fx=null;d.fy=null;}return d3.drag().on("start",dragstarted).on("drag",dragged).on("end",dragended);}var edges_text = svg.selectAll(".linetext").data(links).enter().append("text").attr("class","linetext").text(d=> d.relation).style("stroke",(d,i)=>color[i%10]).style("font-size",14);	                var texts=svg.selectAll(".forceText").data(nodes).enter().append("text").attr("class","forceText").style("stroke",(d,i)=>color[i%10]).style("font-size","12px").attr("text-anchor","middle").attr("dy",30).text(d=>d.name);}}
})
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_12899.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【easyExcel】后端将模板文件写入流供前端下载报错,easyexcel下载模板文件出错

目录事件起因环境和工具操作过程解决办法参考内容&#xff1a;结束语事件起因 报错内容&#xff08;我主要搜索的两个错误内容点&#xff09;&#xff1a; com.alibaba.excel.exception.ExcelGenerateException: Create workbook failure 和 Caused by: org.apache.poi.openx…

kingbaseES(人大金仓)数据库语法和常用函数 以及 踩坑记录

前言 最近公司弄了个新项目&#xff0c;数据库指定使用kingbase数据库 刚开始一看这名字都不知道这是啥数据库&#xff0c;后来百度一搜&#xff0c;看到中文名字就知道了。 虽然没用过&#xff0c;但那几个国产数据库也听说过 这不&#xff0c;刚开始用&#xff0c;语法都不熟…

概率统计·概率论的基本概念【条件概率】

条件概率 定义 条件概率与积事件的区别 条件概率——在A事件发生的前提下&#xff0c;发生B 积事件——AB同时发生 性质 **注意&#xff08;3&#xff09;要在B1&#xff0c;B2……是互斥事件 &#xff08;6&#xff09;用得多 纯乐&#xff0c;自己都说了&#xff08;6&…

数智赋能,美创助力绍兴市上虞区建设医共体管理平台

什么是医共体&#xff1f; 开展县域医共体建设是深化医改的重要步骤和制度创新&#xff0c;旨在通过医共体模式&#xff0c;推动医疗卫生服务供给侧结构性改革&#xff0c;调整优化医疗资源结构布局&#xff0c;促进医疗卫生工作重心下移和资源下沉&#xff0c;提升基层服务能力…

瑞吉外卖(14) - 上传文件功能开发

文章目录文件上传介绍文件上传代码实现查看效果新建CommonController类断点测试转存文件取消拦截器过滤LoginCheckFilter.java运行测试完善功能编写application.xml编写CommonController.java运行测试完善二级目录编写application.yml编写CommonControler.java测试成功文件上传…

使用streamstring实现格式化输入

目的&#xff1a;在windows系统写c项目&#xff0c;常用sscanf_s进行格式化输入。但是在ubuntu系统上发现sscanf_s不可用&#xff08;只有sscanf可用&#xff0c;但是它是c 99 的函数了&#xff09;。后面查阅知道&#xff0c;这个sscanf_s函数是微软专有的函数&#xff0c;不具…

linux 竞态与并发编程

前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习机器学习&#xff0c;本文就介绍了机器学习的基础内容。 提示&#xff1a;以下是本篇文…

Mapper代理开发

Mapper代理开发一. Mapper代理开发概述二. 使用Mapper代理要求(重点中的重点)三. 实操的代码main目录下的java目录中1. UserMapper接口2. User类3. MybatisDemo类main目录下的resources目录中1. UserMapper.xml2. logback.xml3. mybatis.xml一. Mapper代理开发概述 之前我们写的…

【SpringBoot2】02-SpringBoot中如何修改依赖的版本

Spring Boot 中修改依赖版本 如果默认版本号不合适&#xff0c;我们可以修改版本号。 首先&#xff0c;打开当前项目的 pom.xml 文件&#xff0c;查看 spring-boot-dependencies-2.7.4.pom 中规定当前依赖的版本。 例如&#xff0c;我想修改 MySQL 驱动版本&#xff0c;我先看…

OPSS-PEG-Acrylate,OPSS-PEG-AC,巯基吡啶-聚乙二醇-丙烯酸酯试剂供应

英文&#xff1a;OPSS-PEG-Acrylate&#xff0c;OPSS-PEG-AC 中文&#xff1a;巯基吡啶-聚乙二醇-丙烯酸酯 2、 CAS number&#xff1b; N/A 3、The category&#xff1b;Acrylate/Acrylamide PEG Orthopyridyl disulfide (OPSS) PEG 4、Molecular weight&#xff1a;巯基吡…

队列(C语言)

文章目录前言概念基本操作循环队列少用一个元素空间栈队列前言 本篇进行队列的学习。使用C语言实现 概念 排队是体现了“先来先服务”的原则。 在多道程序运行的计算机系统中&#xff0c;可以同时有多个作业运行&#xff0c;他们的运算结果都需要通过通道输出&#xff0c;若通…

[架构之路-3]:软件架构师也是魔法师,架构师应具备的四大方面的技能

目录 前言&#xff1a; 一、业务能力&#xff08;业务领域&#xff09;-- 面向业务 1.1 业务场景 1.2 业务技能 二、沟通能力&#xff08;管理领域&#xff09; -- 面向“人” 三、技术能力&#xff08;计算机领域&#xff09; -- 面向计算机 3.1 硬件技能 3.2 软件技能…

一个有点意思的网站 - 语雀

在这个平台上面创建了一个文档&#xff1a;CWIKIUS 语雀 Confluence Confluence 的问题就是太臃肿&#xff0c;不兼容 MD 格式。 但是&#xff0c;Confluence 和 JIRA 重度集成&#xff0c;因此成为很多公司文档的标配。 语雀 试用了下这个文档工具&#xff0c;整体上来说…

我们如何一键将录音转换成文字?

最近有很多小伙伴向我求助说&#xff0c;他的职业是一名记者&#xff0c;因为每次采访都要进行对话录音&#xff0c;可是每次结束后都需要再去对录音进行整理&#xff0c;花费了大量的时间。因此他总是在加班&#xff0c;他想改变这一现状却不知道该怎么办。其实我们不必如此麻…

platform.pk8 和platform.x509.pem转jks

/** OpenSSL */ 下载地址&#xff1a;http://slproweb.com/products/Win32OpenSSL.html 环境配置&#xff1a; openssl 安装后查看是否安装成功&#xff0c;需要以管理员身份运行cmd查看 cmd输入openssl出现下面显示&#xff0c;表示配置成功&#xff0c;openssl可以使用 pla…

VUE v-bind 数据绑定

动态的绑定一个或多个 attribute,也可以是组件的 prop。缩写: : 或者 . (当使用 .prop 修饰符) 期望: any (带参数) | Object (不带参数) 参数: attrOrProp (可选的) 修饰符:.camel ——将短横线命名的 attribute 转变为驼峰式命名。 .prop ——强制绑定为 DOM property。…

kafka 安装

目录 Docker安装 1.安装Docker 2.搜索docker镜像 3.安装Zookeeper 4. 安装kafka 5.启动kafka ​​​​​​​ Linux安装 1.kafka下载 2.安装JDK 3.安装zookeeper 4.安装kafka 5.启动kafka zookeeper上查看kafka的节点 1.进入zookeeper容器 2.运行客户端 3.查看ka…

MongoDB --- 聚合查询

什么是聚合查询 聚合操作处理数据记录并返回计算结果。聚合操作组值来自多个文档,可以对分组数据执行各种操作以回单个结果。聚合操作包含三类:单一作用聚合、聚合管道、MapReduce(在5.x已经弃用)。 单一作用聚合 提供了对常见聚合过程的简单访问,操作都从单个集合聚合文…

网络笔记大全(超详细)

目录 OSI七层参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 封装和解封装 应用层 传输层 网络层 数据链路层 物理层 PDU --- 协议数据单元应用层 --- 报文 传输层 --- 段 网络层 --- 包 数据链路层 --- 帧 物理层 --- 比特流 Sof --- 帧首…

日本25年来首次干预以支撑日元汇率

日本周四自 1998 年以来首次干预外汇市场&#xff0c;以支撑暴跌的日元&#xff0c;此前日本央行决定维持超低利率&#xff0c;这一决定已对日元造成冲击。 KlipC 风险经理 Philip Nucci 周五表示&#xff1a;“他们&#xff08;在外汇市场&#xff09;采取了果断行动&#xff…