package com;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import util.JdbcUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Neo4jQuery {
public static String[] arr = { "WS", "XZ", "JD", "ZY" };
public static String[] arr2 = { "网省", "细则", "阶段", "专业" };
public static StringBuffer getHtml(String data, String links) {
StringBuffer sb = new StringBuffer();
sb.append("\n<!DOCTYPE html>");
sb.append("\n<html style='width:100%;height:100%;'>");
sb.append("\n");
sb.append("\n <head>");
sb.append("\n <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>");
sb.append("\n <title></title>");
sb.append("\n <script src='js/echarts.js'></script>");
sb.append("\n </head>");
sb.append("\n");
sb.append("\n <body style='width:99%;height:97.5%;'>");
sb.append("\n <div style='width:100%;height:100%;'>");
sb.append("\n <div id='main' style='width: 100%;height:100%;'></div>");
sb.append("\n </div>");
sb.append("\n </body>");
sb.append("\n <script>");
sb.append("\n var data = " + data + ";");
sb.append("\n var links = " + links + ";");
sb.append("\n");
sb.append("\n function getSize(value, labels, flag) {");
sb.append("\n var datas = [];");
sb.append("\n for(var key in data) {");
sb.append("\n if(data[key].labels == labels) {");
sb.append("\n datas.push(data[key].value);");
sb.append("\n }");
sb.append("\n }");
sb.append("\n var max = Math.max.apply(null, datas);");
sb.append("\n var size = 0;");
sb.append("\n if(flag > 0) {");
sb.append("\n size = Math.pow(value, flag) * (40 / Math.pow(max, flag));");
sb.append("\n } else if(flag < 0) {");
sb.append("\n size = Math.sqrt(value) * (40 / Math.sqrt(max));");
sb.append("\n }");
sb.append("\n return size + 10;");
sb.append("\n }");
sb.append("\n");
sb.append("\n var myChart = echarts.init(document.getElementById('main'));");
sb.append("\n var option = {");
sb.append("\n tooltip: {");
sb.append("\n show: true,");
sb.append("\n triggerOn: 'mousemove', //mousemove鼠标移至触发,还有click点击触发");
sb.append("\n position: 'right', //提示框浮层的位置");
sb.append("\n confine: false, //是否将 tooltip 框限制在图表的区域内");
sb.append("\n formatter: function(params, ticket, callback) {");
sb.append("\n if('node' == params.dataType) {");
sb.append("\n var str = '';");
sb.append("\n var arr = params.name.split('');");
sb.append("\n var j = 1;");
sb.append("\n for(var i = 0; i < arr.length; i++) {");
sb.append("\n if(j % 29 == 0 || ';' == arr[i] || '。' == arr[i]) {");
sb.append("\n str += arr[i] + '<br/>';");
sb.append("\n j = 1;");
sb.append("\n } else {");
sb.append("\n j++;");
sb.append("\n str += arr[i];");
sb.append("\n }");
sb.append("\n }");
sb.append("\n str += '<br/>关联数量:' + params.value;");
sb.append("\n return myChart.getOption().series[params.seriesIndex].categories[params.data.category].name + ':' + str;");
sb.append("\n }");
sb.append("\n }");
sb.append("\n },");
sb.append("\n toolbox: {");
sb.append("\n show: true,");
sb.append("\n feature: {");
sb.append("\n dataView: { show: true, readOnly: false },");
sb.append("\n restore: { show: true }, //restore,还原,复位原始图表");
sb.append("\n saveAsImage: { show: true } //saveAsImage,保存图片");
sb.append("\n }");
sb.append("\n },");
sb.append("\n color: ['#FF756E', '#68BDF6', '#FFD86E', '#DE9BF9', '#60B58B'],");
sb.append("\n legend: {");
sb.append("\n show: true,");
sb.append("\n left: 'left',");
sb.append("\n align: 'right',");
sb.append("\n orient: 'vertical',");
sb.append("\n icon: 'circle',");
sb.append("\n data: ['网省', '专业', '阶段', '细则'],");
sb.append("\n },");
sb.append("\n series: [{");
sb.append("\n type: 'graph',");
sb.append("\n name: '关联关系图',");
sb.append("\n layout: 'force', //图的布局,类型为力导图,'circular' 采用环形布局");
sb.append("\n force: {");
sb.append("\n initLayout: 'circular', //力引导的初始化布局,默认使用xy轴的标点");
sb.append("\n repulsion: 2500, //节点之间的斥力因子。支持数组表达斥力范围,值越大斥力越大。");
sb.append("\n gravity: 1, //节点受到的向中心的引力因子。该值越大节点越往中心点靠拢。");
sb.append("\n edgeLength: [500, 0] //边的两个节点之间的距离,这个距离也会受 repulsion。[10, 50] 。值越小则长度越长");
sb.append("\n },");
sb.append("\n roam: true, //是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启");
sb.append("\n //draggable: true, //节点是否可拖拽,只在使用力引导布局的时候有用。");
sb.append("\n focusNodeAdjacency: true, //是否在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点。");
sb.append("\n // 'circle'(圆形), 'rect'(矩形), 'roundRect'(圆角矩形), 'triangle'(三角形), 'diamond'(菱形),");
sb.append("\n // 'pin'(大头针),'arrow'(箭头) 也可以通过 'image://url' 设置为图片,其中 url 为图片的链接。'path:// 这种方式可以任意改变颜色并且抗锯齿");
sb.append("\n symbol: 'circle',");
sb.append("\n symbolSize: function(value, data) { //也可以用数组分开表示宽和高,例如 [20, 10] ");
sb.append("\n if('MS' == data.data.labels) {");
sb.append("\n return 5;");
sb.append("\n } else if('JD' == data.data.labels) {");
sb.append("\n return 50;");
sb.append("\n } else {");
sb.append("\n //return Math.sqrt(value);//Math.pom(value,2);");
sb.append("\n return getSize(value, data.data.labels, 1);");
sb.append("\n }");
sb.append("\n },");
sb.append("\n edgeSymbol: ['circle', 'arrow'], //边两端的标记类型");
sb.append("\n edgeSymbolSize: [2, 5],");
sb.append("\n lineStyle: {");
sb.append("\n normal: {");
sb.append("\n width: '0.7',");
sb.append("\n type: 'solid', //线的类型 'solid'(实线)'dashed'(虚线)'dotted'(点线)");
sb.append("\n curveness: 0, //线条的曲线程度,从0到1");
sb.append("\n color: 'source',");
sb.append("\n opacity: 0.7");
sb.append("\n }");
sb.append("\n },");
sb.append("\n label: {");
sb.append("\n normal: {");
sb.append("\n show: true,");
sb.append("\n //position: 'right',//相对于节点标签的位置");
sb.append("\n formatter: function(data) {");
sb.append("\n if('MS' == data.data.labels) {");
sb.append("\n return '';");
sb.append("\n } else {");
sb.append("\n return data.data.name;");
sb.append("\n }");
sb.append("\n },");
sb.append("\n textStyle: {");
sb.append("\n color: '#000',");
sb.append("\n fontSize: 16");
sb.append("\n }");
sb.append("\n }");
sb.append("\n },");
sb.append("\n categories: [{ name: '网省'},{ name: '专业'},{ name: '阶段'},{ name: '细则'}],");
sb.append("\n data: data,");
sb.append("\n links: links,");
sb.append("\n }]");
sb.append("\n };");
sb.append("\n myC
Java读取CSV用Load命令插入Neo4j与JDBC读取Neo4j数库生成Echarts关系图
5星 · 超过95%的资源 需积分: 5 89 浏览量
2018-02-06
17:05:38
上传
评论 6
收藏 2.9MB ZIP 举报
-_-_-_
- 粉丝: 6
- 资源: 7
最新资源
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
- python中matplotlib教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈