echarts玩转图表之矩形树图
前言
这是第一次用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>',
'代码行数: ' + lines + '<br>',
'缺陷数量: ' + errors + '<br>',
'缺陷率: ' + 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玩转图表之矩形树图的更多相关文章
- echarts生成的图表大小怎么随屏幕的大小改变自适应
最近在做图表,记录一下用到的知识点,当做自己的日记吧,会不断添加新内容 1,echarts生成的图表大小怎么随屏幕的大小改变自适应? this.chart.setOption(this.options ...
- echarts实现条形图表
导入相应的包需要的文件;
- 通过百度echarts实现数据图表展示功能
现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...
- 利用Echarts设计一个图表平台(一)
Echarts是一款百度的开源图表库,里面提供了非常多的图表样式,我们今天要讲的内容是利用这一款开源js图表,制作一个能够动态定制的图表平台. 1)Echarts API介绍 首先我们先来看一下Ech ...
- 如何快速使用ECharts绘制可视化图表
1.在ECharts官网,下载ECharts的源码和示例文件. 2.解压缩下载下来的Echars压缩包,找到doc\example\www\echartsjs目录,将里面的js文件全部取出来,放到项目 ...
- vue+echarts 动态绘制图表以及异步加载数据
前言 背景:vue写的后台管理,需要将表格数据绘制成图表(折线图,柱状图),图表数据都是通过接口请求回来的. 安装 cnpm install echarts --s (我这里用了淘宝镜像,不知道同学自 ...
- ECharts导出word 图表模糊失真
在项目中会有这样的需求,echars生成图表导入到word中 在项目中用的插件 博主有一篇文章将的是 vue使用jquery的三方插件jquery.wordexport.js https://b ...
- Echarts 一个开源图表设计工具
一般来说,因有所需,方有所求.最近项目中有这方面的需求,用着感觉不错.特此记录!此处仅是一个简单的demo.官网地址:http://echarts.baidu.com/,相关文档.插件都有. 1.js ...
- [echarts] - echarts量化比较图表类型解析
https://echarts.baidu.com/examples/editor.html?c=watermark <!DOCTYPE html> <!--用作两种货品的参数对比- ...
随机推荐
- 创建mysql索引的方式
创建索引方式: 1.create index 索引名 on 表名 (字段) 2.alter table 表 add index 索引名 (字段) -- 普通索引 alter table 表名 ...
- Pick of the Week'19 | 图数据库 Nebula 第 47 周看点-- insert 的二三事
每周五 Nebula 为你播报每周看点,每周看点由本周大事件.用户问答.Nebula 产品动态和推荐阅读构成. 今天是 2019 年第 47 个工作周的周五,来和 Nebula 看看本周有什么图数据库 ...
- Android OkHttp + Retrofit 断点续传
本文链接 前面我们已经知道如何使用OkHttp+Retrofit下载文件. 下载文件时,可能会遇到一些意外情况,比如网络错误或是用户暂停了下载. 再次启动下载,如果又要从头开始,会白白浪费前面下载好的 ...
- Oracle模糊查询CONCAT参数个数无效
在使用MyBatis操作Oracle数据库的时候,写模糊查询突然发现原本在MySql中正确的代码,在Oracle中报错,参数个数无效 <if test="empId!=null and ...
- jieba的使用
1. 分词 分词是自然语言处理中最基础的一个步骤.而jieba分词是中文分词的一个比较好的工具.下面看看可以怎么用jieba进行分词. import jieba # 全模式 seg_list1 = j ...
- 阿里iconfont的使用
1.找到阿里巴巴图标库 2.找到图标 3.搜索你想要的图标 4.将图标添加到购物车 5.点击右上角的购物车按钮,我这里添加了两个. 6.提示你登陆,不需要花钱,找其中一个账号登陆一下就行了 假如你使用 ...
- 学习DDD的初步尝试,从最基础的开始,业务介绍,划分限界上下文 ,建立模型
Conference业务简介 Conference是这样一个系统,它提供了一个在线创建会议以及预订会议座位的平台.这个系统的用户有两类: 1:客户,可以创建和管理会议. 2:会议座位预定者,可以预订会 ...
- LeetCode刷题191127
数据库: 1179 部门表 Department: +---------------+---------+| Column Name | Type |+---------------+-------- ...
- Linux系统学习 十六、VSFTP服务—本地用户访问—基本用户基础配置
缺点,ftp密码是和系统密码是一致的,并不安全 先设置两个测试用户 test1 123123 test2 123123 基本用户基础配置 1.本地用户基本配置 local_enab ...
- Unity3D 截取6面图 做全景图脚本
using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine; publi ...