前言

这是第一次用makedown编辑器写文章,感觉像一件利器,排版美观而且效率飙升。进入正题

Echart官网文档地址

针对于矩形树图api配置项链接

1. 完全从数据定义图形

$.get( "{% static 'json/rectTreeData.json' %}", function (obama_budget) {
myChart.hideLoading();

//obama_budget数据里面的参数可以决定option里面需要用到的参数,可以直接在后端完整定义这个data,来自定义前端显示的图形形状,pyecharts的实现应该也是这种思路,echarts的api接口不是对所有问题需求都是可以很好满足的,幸好这里图形配置项定义可以直接在从原始数据中操作,前端自定义可以用下面的方式

第一种

obama_budget[4]["itemStyle" ]= {    //
color : '#0000ff',
...
};

第二种

data.children[0].itemStyle = {
color : '#0000ff',
borderColor:'#0000ff'
...
};

后端自定义每个方块颜色可以这样实现

   rectDictnode["name"]=node[0]
rectDictnode["value"]=nodebuf
rectDictnode["absName"]=filedir+node[0]
color=gerColorOfWeight(node[1][0],node[1][3])
color1="rgb("+str(color['red'])+','+str(color['green'])+','+str(color['blue'])+')'
#print(color1)
rectDictnode["itemStyle"]={"color":color1 }

最终形成echarts中需要的格式就可以

 {
value: [1212, 4943, 5453],
absName:'root'
name: 'description of this node',
children: [...]
},

2. 利用Api配置项定义图表

一些常用配置项代码中做注释:

    function isValidNumber(num) {
return num != null && isFinite(num);
}
myChart.setOption(option = {
title: {
left: 'left', //标题显示位置
text: '缺陷分布', //主标题,副标题
subtext: '缺陷密度=缺陷数量/代码行数*1000 \n绿色表示该模块缺陷密度为0,红色越深的模块缺陷密度越大'
},
tooltip: {
formatter: function (info) { //自定义tooltip鼠标浮动提示,返回HTML
var value = info.value; var lines = value[0];
lines = isValidNumber(lines)
? echarts.format.addCommas(lines )
: '-'; var errors = value[1];
errors = isValidNumber(errors)
? echarts.format.addCommas(errors)
: '-'; var warningsOrWeight = value[2];
warningsOrWeight = isValidNumber(warningsOrWeight)
? warningsOrWeight.toFixed(2) + '%'
: '-'; return [
'<div class="tooltip-title">' + echarts.format.encodeHTML(info.name) + '</div>',
'代码行数: &nbsp;&nbsp;' + lines + '<br>',
'缺陷数量: &nbsp;&nbsp;' + errors + '<br>',
'缺陷率: &nbsp;&nbsp;' + warningsOrWeight
].join('');
}
},
series: [{
name: 'root', //这些配置项是对全局属性配置
top: 80,
type: 'treemap', //树形图类型
leafDepth: 1, //一次下钻深度
roam:'false', //不能缩放平移
label: { //显示文字标签定义
show: true,
formatter: "{b}", //定义显示的内容 {b}表示name
normal: {
textStyle: {
ellipsis: true //圆角
}
}
},
itemStyle: {
normal: {
borderColor: 'black' //方块分割边框颜色
}
},

borderWidth, gapWidth, borderColor 的解释

            visualDimension: 2, //指定2『视觉映射』使用的是value数组的第3项
levels: [ //https://blog.csdn.net/dtq007/article/details/87879790 { //钻入矩形树图的顶层
// colorSaturation: [0.1, 0.5], //设置颜色饱和度
color:['#269f3c', '#ca6872','#942e38'], //颜色列表,对于定义每个分块颜色不太理想
colorMappingBy: 'value', //颜色根据value设置
itemStyle: {
normal: {
borderWidth: 2, //方块外边框粗细
borderColor: '#333', //边框颜色
gapWidth: 1 //方块内部边框粗细
}
}
},
{ //钻入矩形树图的第二层
//color: ['#269f3c', '#ca6872','#942e38'],
//colorMappingBy: 'value',
itemStyle: {
normal: {
gapWidth: 1
}
}
},
{ //钻入矩形树图的第三层
//color: ['#269f3c', '#ca6872','#942e38'],
// colorMappingBy: 'value',
itemStyle: {
normal: {
borderWidth: 1, }
}
},
{ //钻入矩形树图的第四层,没有的话就不用写了
//color: ['#269f3c', '#ca6872','#942e38'],
// colorMappingBy: 'value',
itemStyle: {
normal: {
borderWidth: 1, }
}
}
],
data: obama_budget //设置数据来源
}]
});

最终效果,自己定义每个小方块的颜色



也将echarts矩形树图做成了我自已实现的树形图表的样子:

echarts玩转图表之矩形树图的更多相关文章

  1. echarts生成的图表大小怎么随屏幕的大小改变自适应

    最近在做图表,记录一下用到的知识点,当做自己的日记吧,会不断添加新内容 1,echarts生成的图表大小怎么随屏幕的大小改变自适应? this.chart.setOption(this.options ...

  2. echarts实现条形图表

    导入相应的包需要的文件;

  3. 通过百度echarts实现数据图表展示功能

    现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...

  4. 利用Echarts设计一个图表平台(一)

    Echarts是一款百度的开源图表库,里面提供了非常多的图表样式,我们今天要讲的内容是利用这一款开源js图表,制作一个能够动态定制的图表平台. 1)Echarts API介绍 首先我们先来看一下Ech ...

  5. 如何快速使用ECharts绘制可视化图表

    1.在ECharts官网,下载ECharts的源码和示例文件. 2.解压缩下载下来的Echars压缩包,找到doc\example\www\echartsjs目录,将里面的js文件全部取出来,放到项目 ...

  6. vue+echarts 动态绘制图表以及异步加载数据

    前言 背景:vue写的后台管理,需要将表格数据绘制成图表(折线图,柱状图),图表数据都是通过接口请求回来的. 安装 cnpm install echarts --s (我这里用了淘宝镜像,不知道同学自 ...

  7. ECharts导出word 图表模糊失真

    在项目中会有这样的需求,echars生成图表导入到word中 在项目中用的插件 博主有一篇文章将的是  vue使用jquery的三方插件jquery.wordexport.js   https://b ...

  8. Echarts 一个开源图表设计工具

    一般来说,因有所需,方有所求.最近项目中有这方面的需求,用着感觉不错.特此记录!此处仅是一个简单的demo.官网地址:http://echarts.baidu.com/,相关文档.插件都有. 1.js ...

  9. [echarts] - echarts量化比较图表类型解析

    https://echarts.baidu.com/examples/editor.html?c=watermark <!DOCTYPE html> <!--用作两种货品的参数对比- ...

随机推荐

  1. SAP QA32试图做UD,系统报错-工厂 BTYC中的 QM 基选设置需要维护

    SAP QA32 试图做UD,系统报错 - 工厂 BTYC 中的 QM 基选设置需要维护 - 检验批 10000062593,试图做使用决策,系统报错, 工厂 BTYC 中的 QM 基选设置需要维护 ...

  2. leaflet-webpack 入门开发系列六矢量瓦片(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

  3. leetcode菜鸡斗智斗勇系列(2)--- 把一个ipv4地址转换成一串数字

    1.原题: https://leetcode.com/problems/defanging-an-ip-address/ 这道题本身很简单, Given a valid (IPv4) IP addre ...

  4. 信通院发布《云计算发展白皮书 (2019年) 》 (附PPT解读)

    来源: 中国信息通信研究院CAICT 为了进一步促进云计算创新发展,建立云计算信任体系,规范云计算行业,促进市场发展,提升产业技术和服务水平.由中国信息通信研究院(以下简称“中国信通院”)主办,中国通 ...

  5. 如何使用 RxJS 更优雅地进行定时请求

    在用 Angular 做项目的时候,遇到了一个有点麻烦的问题.具体问题如下: 轮循请求某个接口,如何保证接口返回的数据与请求的顺序相同? 实际的业务场景是这样的:前端需要轮循请求后端接口获取文件处理进 ...

  6. 版本控制工具——Git常用操作

    本文引自:https://juejin.im/post/5c206f1bf265da615114c15a

  7. vuejs中拖动改变元素宽度实现宽度自适应大小

    需求效果: 原理:拖动效果的实现基本都是dom操作来实现的,通过拖动分隔线,计算分隔线与浏览器边框的距离(left),来实现拖动之后的不同宽度的计算:当拖动分隔线1时,计算元素框left和mid:当拖 ...

  8. [转]自定义UiPath Activity实践

    本文转自:https://segmentfault.com/a/1190000017440647 为了对UiPath Activity的实现方式一探究竟,自己尝试实践编写了一个简单的Activity, ...

  9. docker下MySQL的主从复制

    MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name mas ...

  10. bayaim——达梦数据库 导入导出

    导出: E:\dmdbms\bin\dexp.exe """SYSDBA"""/"""******" ...