欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > echarts实现项目进度甘特图

echarts实现项目进度甘特图

2025/5/30 11:17:11 来源:https://blog.csdn.net/qq_45840993/article/details/148167764  浏览:    关键词:echarts实现项目进度甘特图

描述

echarts并无甘特图配置项,我们可以使用柱状图模拟,具体配置项如下,可以在echarts直接运行
在这里插入图片描述

var option = {backgroundColor: "#fff",legend: {data: ["计划时间","实际时间"],align: "right",right: 80,top: 50},grid: {containLabel: true,show: false,right: 130,left: 40,bottom: 40,top: 90},xAxis: {type: "time",axisLabel: {"show": true,"interval": 0}},yAxis: {axisLabel: {show: true,interval: 0,formatter: function(value, index) {var last = ""var max = 5;var len = value.length;var hang = Math.ceil(len / max);if (hang > 1) {for (var i = 0; i < hang; i++) {var start = i * max;var end = start + max;var temp = value.substring(start, end) + "\n";last += temp; //凭借最终的字符串}return last;} else {return value;}}},data: ["项目一", "项目二", "项目三"]},tooltip: {trigger: "axis",formatter: function(params) {var res = "";var name = "";var start0 = "";var start = "";var end0 = "";var end = "";for (var i in params) {var k = i % 2;if (!k) { //偶数start0 = params[i].data;console.log(start0)start = start0.getFullYear() + "-" + (start0.getMonth() + 1) + "-" + start0.getDate();}if (k) { //奇数name = params[i].seriesName;end0 = params[i].data;end = end0.getFullYear() + "-" + (end0.getMonth() + 1) + "-" + end0.getDate();res += name + " : " + start + "~" + end + "</br>";}}return res;}},series: [{name: "计划时间",type: "bar",stack: "总量0",label: {normal: {show: true,color: "#000",position: "right",formatter: function(params) {return params.seriesName}}},itemStyle: {normal: {color: "skyblue",borderColor: "#fff",borderWidth: 2}},zlevel: -1,data: [new Date("2018-05-01"), new Date("2018-03-14"), new Date("2018-05-01")]},{name: "计划时间",type: "bar",stack: "总量0",itemStyle: {normal: {color: "white",}},zlevel: -1,z: 3,data: [new Date("2018-01-01"), new Date("2018-01-30"), new Date("2018-03-15")]},{name: "实际时间",type: "bar",stack: "总量6",label: {normal: {show: true,color: "#000",position: "right",formatter: function(params) {return params.seriesName}}},itemStyle: {normal: {color: 'orange',borderColor: "#fff",borderWidth: 2}},zlevel: -1,data: [new Date("2018-03-30"), new Date("2018-03-13"), new Date("2018-10-30")]},{name: "实际时间",type: "bar",stack: "总量6",itemStyle: {normal: {color: 'white',}},zlevel: -1,z: 3,data: [new Date("2018-01-01"), new Date("2018-02-16"), new Date("2018-03-30")]},]
}

进阶优化

添加警告标识以及文字叙述
在这里插入图片描述

var option = {backgroundColor: "#fff",legend: {data: ["计划时间","实际时间"],align: "right",right: 80,top: 50},grid: {containLabel: true,show: false,right: 130,left: 40,bottom: 40,top: 90},xAxis: {type: "time",axisLabel: {"show": true,"interval": 0}},yAxis: {axisLabel: {show: true,interval: 0,formatter: function(value, index) {var last = ""var max = 5;var len = value.length;var hang = Math.ceil(len / max);if (hang > 1) {for (var i = 0; i < hang; i++) {var start = i * max;var end = start + max;var temp = value.substring(start, end) + "\n";last += temp; //凭借最终的字符串}return last;} else {return value;}}},data: ["项目一", "项目二", "项目三"]},tooltip: {trigger: "axis",formatter: function(params) {var res = "";var name = "";var start0 = "";var start = "";var end0 = "";var end = "";for (var i in params) {var k = i % 2;if (!k) { //偶数start0 = params[i].data;console.log(start0)start = start0.getFullYear() + "-" + (start0.getMonth() + 1) + "-" + start0.getDate();}if (k) { //奇数name = params[i].seriesName;end0 = params[i].data;end = end0.getFullYear() + "-" + (end0.getMonth() + 1) + "-" + end0.getDate();res += name + " : " + start + "~" + end + "</br>";}}return res;}},series: [{name: "计划时间",type: "bar",stack: "总量0",label: {normal: {show: true,color: "#000",position: "right",formatter: function(params) {return params.seriesName}}},itemStyle: {normal: {color: "skyblue",borderColor: "#fff",borderWidth: 2}},zlevel: -1,data: [new Date("2018-05-01"), new Date("2018-03-14"), new Date("2018-05-01")]},{name: "计划时间",type: "bar",stack: "总量0",itemStyle: {normal: {color: "white",}},zlevel: -1,z: 3,data: [new Date("2018-01-01"), new Date("2018-01-30"), new Date("2018-03-15")]},{name: "实际时间",type: "bar",stack: "总量6",label: {normal: {show: true,color: "#000",position: "right",offset:[20,0],formatter: function(params) {return params.seriesName}}},itemStyle: {normal: {color: 'orange',borderColor: "#fff",borderWidth: 2}},zlevel: -1,data: [new Date("2018-03-30"), new Date("2018-03-13"), new Date("2018-10-30")],markPoint:{data:[{coord:[new Date("2018-10-30"),"项目三"]}],symbol:'circle',symbolSize:'14',animation:true,symbolOffset:[10,0],itemStyle:{color:'#fd9494'},emphasis:{disabled:false,label:{show:true,color:"#fff",backgroundColor:"#061234",borderWidth:1,padding:[6,8,6,8],offset:[20,60],align:'center',formatter:"{name|延迟完成}\n\n  {desc|预算不够:桥梁材料不够}",rich:{name:{color:"#c4d1fb",fontSize:12,padding:[0,0,-2,4],align:'center',},desc:{color:"#ffdd50",fontSize:10}}}}}},{name: "实际时间",type: "bar",stack: "总量6",itemStyle: {normal: {color: 'white',}},zlevel: -1,z: 3,data: [new Date("2018-01-01"), new Date("2018-02-16"), new Date("2018-03-30")]},]
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词