当前位置: 首页 > 工具软件 > Cytoscape.js > 使用案例 >

初识cytoscape.js

秦涵涤
2023-12-01

(cytoscape.js是一个做网页可视化的常用工具,http://js.cytoscape.org/ 这是他的官网,里面有很多很精美很牛批的案例。但是笔者很渣,接触到这个也是因为网页的功能需求,在接触这个之前甚至都不会js。而写这个的原因是因为在弄这个的时候发现网上的这类教程不多,甚至可以用少来形容。)
首先通过官网来到cytoscape的代码库,发现里面有很多文件和文件夹,但是我们用到的不多。解释一下几个重要的,dist是distribution的意思,放的是发布版本的代码。而我们要用的文件夹就是doumentation,进去之后发现又有几个文件夹,我们要用的代码都在js文件夹下,可以全部都下载下来。而另一个demo库里,是存放的例子,也可以下下来,作为初学者,案例是非常重要的,这也是我后期才发现的。之前在网上到处搜源码都没搜到,没想到近在眼前。
进入js文件夹后,经过多次测试,最基本的实现只要 cytoscape.min.js、cytoscape.js和jquery.js 这三个基本文件,然后在它官网上有详细的说明,但看起来挺麻烦的。贴一段可以实现的代码

    var cy=cytoscape(options={
        container:document.getElementById('cy'),
	    style:[
		    {
			    selector:'node',
			    css:{
			    	'content':'data(name)',
                    'font-family':'微软雅黑',
                    'font-size':5,
                    'color':'#DC143C',
                    'text-valign':'center'
                }
		    }

	    ],
        elements:{
	        nodes: [
		        { data: { id: 'j', name: 'Jerry', weight: 1} },
                { data: { id: 'e', name: 'Elaine',weight: 2} },
                { data: { id: 'k', name: 'Kramer', weight: 3 } },
		        { data: { id: 'g', name: 'George', weight: 4 }},
                {data:{id:'m',name:'mary',weight:5}}
	        ],

	        edges: [
		        { data: { source: 'j', target: 'e', id: 'je' } },
		        { data: { source: 'j', target: 'k', id: 'jk' } },
		        { data: { source: 'j', target: 'g', id: 'jg' } },
		        { data: { source:'j',target: 'm',id: 'jm'} }
	        ]
                },
//        elements:['lily','bob','juce','vic'],
        layout:{name:'circle'}, //circle,concentric,breadthfirst都可以
        zoom:1,
//        pan:{x:0,y:0},
	    minZoom: 0.5,
	    maxZoom: 2,
	    zoomingEnabled: true,
	    userZoomingEnabled: true,
	    panningEnabled: true,
	    userPanningEnabled: true,
	    boxSelectionEnabled: false,
	    selectionType: 'additive',
	    touchTapThreshold: 8,
	    desktopTapThreshold: 4,
	    autolock: false,
	    autoungrabify: true,
	    autounselectify: true,

	    // rendering options:
	    headless: false,
	    styleEnabled: true,
	    hideEdgesOnViewport: false,
	    hideLabelsOnViewport: false,
	    textureOnViewport: true,
	    motionBlur: true,
	    motionBlurOpacity: 0.2,`在这里插入代码片`
	    wheelSensitivity: 1,
	    pixelRatio: 'auto'

    }

    );

之后连上自己的数据库(这里要有php基础了),把数据写进去,这里用php和js嵌合的时候我卡了很久,被网上的document.write误导了一个星期,根本不用document.write,直接用php的echo就完事了。嵌在js里的php代码用echo输出来就是js代码了,贴一段`

	elements:{
					nodes: [
                        <?php echo "{ data: { id: 'j', name: '".$_GET['name']."'} }," ?>
                        <?php for($i=0;$i<$s;$i++) {echo"{data:{id: '$i', name: '$arr5[$i]',href:'http://' } },";}
                        echo "{data:{id: '$s' , name: '$arr5[$s]', weight: 5}}";?>
								],
					edges: [
                        <?php for($i=0;$i<$s;$i++) {echo"{ data:{ source: 'j', target: '$i', weight: 1,id:'j.$i.'}},";}
                        echo "{ data: { source: 'j', target:'$s', weight: 1} }"; ?>
								]
				},`
这个里面的href就是节点跳转的链接。官网上没有直接给出这个节点的属性,我是在demo里面查出来的。剩下的参数和属性官网上基本都有,可以自己试着玩。
这篇博客只能帮助初识cytoscape.js,再难的要自己去学了。若有错误,望斧正。
 类似资料: