echarts 树图
1 事件:事件绑定,事件命名统一挂载到require('echarts/config').EVENT(非模块化为echarts.config.EVENT)命名空间下,建议使用此命名空间作为事件名引用,当前版本支持事件有:
-----------------------基础事件-----------------------
REFRESH(刷新),
RESTORE(还原),
RESIZE(显示空间变化),
CLICK(点击),
DBLCLICK(双击),
HOVER(悬浮),
MOUSEOUT(鼠标离开数据图形),
2.添加节点
param.data.children.push({
name: '500', // {name: '标注1', value: 100, x: 50, y: 20},
value: 4,
nodeType: thisTreeType,
id: new Date().getTime().toString(), //自定义属性
symbol: 'rectangle', //
color: ["red"], //填充色transparent
itemStyle: {
normal: {
color: ["#20B2AA"], //新增节点的填充样式
label: { //标签
show: true,
hoverLink: false,
interval: 'auto',
position: 'inside', //标签的位置
rotate: 0,
formatter: null,
textStyle: {
color: 'white',
fontSize: 16,
align: "left",
baseline: "bottom"
},
}
}
},
symbolSize: [120, 40],
children: []
})
myChart.refresh()
3.获取数据
myChart.chart.tree.series[0].data
4.例子
var myChart, option;
//加载树
// 路径配置
/* require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});*/
require.config({
paths: { //文件路径
echarts: './echarts/configChart'
}
});
// Step:4 require echarts and use it in the callback.
// Step:4 动态加载echarts然后在回调函数中开始使用,注意保持按需加载结构定义图表路径
require( //所需js
[
'echarts',
'echarts/chart/tree',
],
function(ec) {
// 基于准备好的dom,初始化echarts图表
myChart = ec.init(document.getElementById('main_orgStructure'));
var commonStyle = {}
option = {
title: {
text: 'SCADA'
},
tooltip: {
show: false,
formatter: function(params) { //自定义提示信息
return params.name
}
},
color: [ //节点填充色
"#20B2AA"
],
toolbox: {
show: false,
feature: {
mark: {
show: true
},
dataView: {
show: true,
readOnly: false
},
restore: {
show: true
},
saveAsImage: {
show: true
}
}
},
calculable: false,
series: [{
name: '树图',
type: 'tree',
orient: 'vertical', // vertical horizontal radial//树的方向
rootLocation: {
x: '50%',
y: '50%'
}, // 根节点位置 {x: 'center',y: 10}
nodePadding: 20, //节点间距
layerPadding: 60, //层间距
symbol: 'circle',
roam: true, //可以用鼠标缩放 拖动
//direction: 'inverse', //树反转
itemStyle: {
normal: {
color: '#20B2AA', //节点背景色
label: {
show: true,
position: 'inside',
textStyle: {
color: '#20B2AA',
fontSize: 15,
align: "left"
//fontWeight: 'bolder'
}
},
lineStyle: {
color: '#DB7093',
width: 1,
type: 'broken', // 'curve'|'broken'|'solid'|'dotted'|'dashed'
}
},
emphasis: {
label: {
show: false
}
}
},
data: thisDataArr
}]
};
//缩放等级
var zr = myChart.getZrender();
zr.painter._layers[1].scale = [1, 1, 0, 0]; //前两个为缩放大小,后两个为缩放原点
/////所有的数据
myChart.chart.tree.series[0].data;
、、设置中心点(根节点)
zr.painter._layers[1].position = [10, 10]; //重新定位中心点(根节点)
、、计算树图的宽度
function getTreeWidth(zr) {
var nodes = zr.storage._roots;
var max = 0;
var min = 0;
for(var i = 0; i < nodes.length; i++) {
if(nodes[i].type == 'image' || nodes[i].type == 'icon') {
var nodeX = nodes[i].style.x;
if(nodeX > max) {
max = nodeX;
rightNode = nodes[i];
continue;
}
if(nodeX < min) {
min = nodeX;
}
}
}
return max - min;
}
注:原文地址http://www.jianshu.com/p/1393c3ab7444
echarts 树图的更多相关文章
- ECharts树图节点过多时取消缩放,调整容器高度自适应内容变化
问题现象 使用ECharts树图,在数据维度大,节点过多时,所看到的内容会重叠交错,无法查看. 原因 在给定ECharts树图容器尺寸后,无论数据多么庞大或者稀少,数据始终会尝试在给定容器内撑满.全部 ...
- echarts - 树图实现四个层级
我相信很多人和我一样,制作echats图标时,都会先去demo官网找相同的或者近似的效果,然后再此基础上改进成我们想要的那个. 但是近期混迹某微信群时,我看到一个群友抛出问题说,echarts画树状图 ...
- Echarts树图定制详解
本文讲的是如何定制Echarts的tree图.主要包括下载.全局变量名修改.左键菜单添加.右键菜单添加.内容缩放.文本过滤高亮等. 一 说明 Echarts中提供了tree图,但实际项目中,该tree ...
- echarts - 特殊需求实现方案汇总
五分钟上手echarts echarts中 设置x||y轴文案.提示文字等为固定字数,超出显示"..." 关于echarts下钻功能的一些总结.js echarts - 特殊需求实 ...
- json通过后台获取数据库中的内容,并在前端进行显示
fastjson.jar以及Echarts树图的js文件(需要在servlet对json进行赋值,所以需要用到json的插件) 链接:https://pan.baidu.com/s/1GBbamPNG ...
- ECharts使用心得——矩阵树图
1. 缘起 最近实验室 boss 让用矩形树图做一下研究数据的展示,囧,矩形树图是什么鬼.问了问师兄,说用 R 语言可以实现,让我去研究一下. = =,那这周不是不用干别的了. 刚好最近在研究百度出的 ...
- echarts玩转图表之矩形树图
前言 这是第一次用makedown编辑器写文章,感觉像一件利器,排版美观而且效率飙升.进入正题 Echart官网文档地址 针对于矩形树图api配置项链接 1. 完全从数据定义图形 $.get( &qu ...
- 时隔两个月再写的Echarts(Enterprise Charts,商业级数据图表)一文
简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10 ...
- echarts学习总结
ECharts学习总结使用步骤1 引入ECharts <script src="echarts.min.js"></script>2 绘制一个简单的图表 为 ...
随机推荐
- linux中的IP地址的修改
一,图形界面,setup 二,修改文件 1,修改主机名字 vi /etc/sysconfig/network NETWORKING=yes #HOSTNAME=localhost.localdomai ...
- linux base shell 基础语法2
转载 http://blog.csdn.net/aggrelxf/article/details/8263110 单引 双引 反引用[] [[]] 将命令的输出读入一个变量中,可以将它放入双引号中,即 ...
- elk之[logstash-input-file]插件使用详解
https://www.cnblogs.com/xing901022/p/4805586.html http://www.cnblogs.com/xing901022/p/4802822.html ...
- THML DOM / Element 对象操作
随着Vue等MVVM框架流行,操作DOM已经不想之前那么频繁,因此很多DOM的操作已经陌生,特此回顾HTML中DOM操作 获取Element节点 熟悉的有 通过ID获取,返回element对象 ...
- 类方法@classmethod
通常情况下,如果我们要使用一个类的方法,那我们只能将一个类实体化成一个对象,进而调用对象使用方法. 式例 1 比如: class Hello(object): def __init__: ...
- c++builder 6 [Linker Fatal error] Unable to open file 'PROXIES.OBJ'
c++builder 6 [Linker Fatal error] Unable to open file 'PROXIES.OBJ' http://blog.csdn.net/cb168/artic ...
- tar 排除文件
tar -cvf test.tgz test/ --exclude *.txt --exclude *.jpg
- day04-完整性约束
完整性约束 关键字: not null 与 default unique primary auto_increment foreign key 1.介绍 约束条件与数据类型的宽度一样,都是可选参数作用 ...
- pycharm 对数据库进行可视化操作
https://blog.csdn.net/qq_24189933/article/details/75666243
- 浅谈分布式消息技术 Kafka(转)
一只神秘的程序猿. Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可 ...