首页 > 编程知识 正文

js数据库关系图插件,前端关系图插件

时间:2023-12-24 13:45:38 阅读:321860 作者:KHWH

本文目录一览:

大数据显示适合用js图表插件吗

适合的,

1、Highcharts

Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。

2、Highstock

Highstock 是用纯 JavaScript 编写的股票图表控件,可以开发股票走势或大数据量的时间轴图表。它包含多个高级导航组件:预设置数据时间范围,日期选择器、滚动条、平移、缩放功能。

3、Highmaps

Highmaps 是一款基于 HTML5 的优秀地图组件。Highmaps 继承了 Highcharts 简单易用的特性,利用它可以方便快捷的创建用于展现销售、选举结果等其他与地理位置关系密切的交互性地图图表。

如何用js实现动态画数据关系图

1.各个应用系统、服务器信息及系统直接的调用都录入到数据库中

2.前端拓扑图、或系统调用关系图的展示UI可以通过一些选项从数据库中捞出数据,然后在UI上动态绘制出关系图来

3.如HTML5 Canvas或基于HTML5 Canvas的JTopo、SVG都可以很好的绘制出这种图来。

用什么语言 可以制作人物关系图 比如js 或者jquery 人物的名称 和关系 是从数据库中读出的

首先如果是远程数据库处理要后台脚本去访问取数据,比如php,java之类,传到前端。

前端可以使用js来将数据显示成图表,使用jqplot等组件也可以。

求教,有没有js插件或者jquery插件可以实现微博的社交关系图的

图表插件,能做出类似的,但如果要完全一样,估计有难度。 比较好点的图表插件有HighCharts和FusionCharts,还有一些其它的,你可以自己搜一下。都很好用的,只要看一下它们的api,就可以用几行代码加上一些配置,写出一些实用的图表了。

jquery怎么实现关系图的绘制

实例代码如下:

!DOCTYPE html

head

titlejQuery渐显效果的人物多级关系图/title

meta http-equiv="content-type" content="text/html;charset=gb2312"

style type="text/css"

#box{width:500px;height:500px;position:relative;}

.host{position:absolute;width:100px;height:50px;line-height:50px;text-align:center;color:#000000;background-color:#eeeeee;border:#000000 1px solid;font-weight:bolder;}

.guest{position:absolute;width:80px;height:40px;line-height:40px;text-align:center;color:#999999;background-color:#FFFFFF;border:#000000 1px solid;cursor:pointer;}

.relationship{position:absolute;width:60px;height:20px;color:#aaa;line-height:20px;font-size:12px;text-align:center;}

/style

script src=""/script

script type="text/javascript"

var relationName = [

{name:"成龙",friend:[

{name:"房祖名",relationship:"父子"},

{name:"林凤娇",relationship:"夫妻"},

},

{name:"房祖名",friend:[

{name:"成龙",relationship:"父子"},

{name:"林凤娇",relationship:"母子"},

},

{name:"林凤娇",friend:[

{name:"成龙",relationship:"夫妻"},

{name:"房祖名",relationship:"母子"},

},

{name:"吴绮莉",friend:[

{name:"成龙",relationship:"绯闻"},

{name:"林凤娇",relationship:"情敌"},

},

{name:"徐静蕾",friend:[

{name:"李亚鹏",relationship:"电影"},

{name:"韩寒",relationship:"娱乐圈"},

},

{name:"方大同",friend:[

{name:"房祖名",relationship:"情敌"},

{name:"薛凯琪",relationship:"否认拍拖"},

},

{name:"薛凯琪",friend:[

{name:"方大同",relationship:"否认拍拖"},

{name:"房祖名",relationship:"女友"}]

}

]

var relation = {

radius:150,

boxW:500,

boxH:500,

hostW:100,

hostH:50,

guestW:80,

guestH:40,

relationW:60,

relationH:20,

angle:0,

id:"box",

init:function(array,n){//传入参数1:数组 参数2:第几个

this.array = array;

this.appendHost(this.array,n);

this.appendQuest(this.array,n);

this.appendRelationShip(this.array,n);

},

appendHost:function(array,n){

var box = $("#"+this.id);

var host ="span class='host'"+array[n].name+"/span";

box.append(host)

this.postHost();

},

postHost:function(){

var x = (this.boxW - this.hostW)/2;

var y = (this.boxH - this.hostH)/2;

$(".host").css({

left:x,

top:y

})

},

appendQuest:function(array,n){

var box = $("#"+this.id);

var guests="";

var that = this;

for(var i=0; iarray[n].friend.length; i++){

guests+="span class='guest'"+array[n].friend[i].name+"/span";

}

$(guests).appendTo(box);

$(".guest").live("click",function(){

that.move(that,this);

})

this.postQuest();

},

postQuest:function(){

var guests = $(".guest");

var that = this;

guests.each(function(i){

guests.eq(i).css({

left:that.setQuestPose(guests.length,that.radius,i,that.guestW,that.guestH,that.angle).left,

top:that.setQuestPose(guests.length,that.radius,i,that.guestW,that.guestH,that.angle).top

}).attr("angle",i/guests.length)

})

},

setQuestPose:function(n,r,i,w,h,d){//n代表共几个对象 r代表周长 i代表第几个对象 w代表外面对象的宽带 h代表外面对象的高度 d代表其实角度

var p = i/n*Math.PI*2+Math.PI*2*d;

var x = r * Math.cos(p);

var y = r * Math.sin(p);

return {

"left":parseInt(this.boxW/2+ x - w/2),

"top":parseInt(this.boxH/2 + y - h/2)

}

},

appendRelationShip:function(array,n){

var box = $("#"+this.id);

var relation="";

for(var i=0; iarray[n].friend.length; i++){

relation+="span class='relationship'"+array[n].friend[i].relationship+"/span";

}

box.append(relation);

this.postRelationShip();

},

postRelationShip:function(){

var guests = $(".relationship");

var that = this;

guests.each(function(i){

guests.eq(i).css({

left:that.setQuestPose(guests.length,that.radius/2,i,that.relationW,that.relationH,that.angle).left,

top:that.setQuestPose(guests.length,that.radius/2,i,that.relationW,that.relationH,that.angle).top

})

})

},

move:function(t,i){

var n = $(".guest").index($(i));

this.angle = parseFloat($(i).attr("angle"))+0.5;

this.delect(n);

this.moveHost(i);

this.moveQuest(i);

this.moveRelationship(i);

this.changeClass();

setTimeout(function(){t.newAppend(i)},500);

},

newAppend:function(i){

this.newAppendGuest(i,"guest","name",this.guestW,this.guestH,this.radius);

this.newAppendGuest(i,"relationship","relationship",this.relationW,this.relationH,this.radius/2);

},

newAppendGuest:function(i,className,name,w,h,r){

var host = $(i).html();

var guest = $(".guest").html();

var box = $("#"+this.id);

var that = this;

var next=0;

for(var i=0; ithis.array.length; i++){

if(host == this.array[i].name){

for(var j=0;jthis.array[i].friend.length; j++){

if(guest !== this.array[i].friend[j].name){

next++;

var guests ="span class='"+className+"'"+this.array[i].friend[j][name]+"/span";

$(guests).appendTo(box).css({

left:that.setQuestPose(this.array[i].friend.length,r,next,w,h,that.angle).left,

top:that.setQuestPose(this.array[i].friend.length,r,next,w,h,that.angle).top

}).attr("angle",that.angle+next/this.array[i].friend.length).hide().fadeIn(1000);

}

}

}

}

},

moveHost:function(i){

var hLeft = parseInt($(".host").css("left")) + this.hostW/2;

var hTop = parseInt($(".host").css("top")) + this.hostH/2;

var gLeft = parseInt($(i).css("left")) + this.guestW/2;

var gTop = parseInt($(i).css("top")) + this.guestH/2;

var l = gLeft - hLeft;

var t = gTop - hTop;

var left = (hLeft - l - this.guestW/2)+"px";

var top = (hTop - t - this.guestH/2)+"px";

this.animate(".host",left,top);

},

moveRelationship:function(i){

var hLeft = parseInt($(".host").css("left")) + this.hostW/2;;

var hTop = parseInt($(".host").css("top")) + this.hostH/2;

var gLeft = parseInt($(".relationship").css("left")) + this.relationW/2;

var gTop = parseInt($(".relationship").css("top")) + this.relationH/2;

var l = gLeft - hLeft;

var t = gTop - hTop;

var left = (hLeft - l - this.relationW/2)+"px";

var top = (hTop - t - this.relationH/2)+"px";

this.animate(".relationship",left,top);

},

moveQuest:function(i){

var left = $(".host").css("left");

var top = $(".host").css("top");

this.animate(i,left,top);

},

delect:function(n){

$(".guest").slice(0,n).remove();

$(".guest").slice(1).remove();

$(".relationship").slice(0,n).remove();

$(".relationship").slice(1).remove();

},

animate:function(i,left,top){

$(i).animate({

left:left,

top:top

},500);

},

changeClass:function(){

var that =this;

$(".guest").addClass("abcdef").removeClass("guest");

$(".host").addClass("guest").removeClass("host").attr("angle",that.angle);

$(".abcdef").addClass("host").removeClass("abcdef").attr("angle",null);

}

}

$(document).ready(function(){

relation.init(relationName,0)

})

/script

/head

body

看不到效果,刷新一下就可以了;br

div id="box"/div

/body

/html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。