首页 > 代码库 > CSDN开源夏令营 百度数据可视化实践 ECharts 11 (期末总结)
CSDN开源夏令营 百度数据可视化实践 ECharts 11 (期末总结)
CSDN开源夏令营 百度数据可视化实践 ECharts 11 (期末总结)
致谢:
CSDN开源夏令营马上就要结束了,随着ECharts专题列入百度ECharts官网,任务就算是基本完成了。再次谢谢林峰老师!回想两个月前听到CSDN要举办这个活动,第一感觉是非常棒,所有就积极看了看所有的项目,项目总体质量很棒,涉及的方面也很广,有云与大数据方面的、有前端与移动方面的、嵌入式与智能硬件方面的、其中linux方面的也很多,总之项目很丰富,也都很有挑战。CSDN是第一年举办这样的活动,虽然时间准备上有些仓促外,总体上组织的很好,在做项目的过程中CSDN的工作人员的服务态度也很好,积极帮忙解决问题,在这里感谢为开源夏令营付出心血和汗水的CSDN工作人员,希望CSDN开源夏令营能越办越好,能为中国的开源事业做出更大的贡献!
开源夏令营感想博客请看:开源夏令营是一段共同成长的人生经历,我会记住的(点个赞哦!呵呵)
专题系类:
(1)专题内容(包括五块)
1)大东沟海战全程,时间轴和散点图的结合。
2)中日国力对比篇
国力对比包含:战争前、战争中和战争后三个方面,从人口数、国土面积、政府财政收入、动员总兵力、死伤总数、战舰数量、战舰总吨位、水雷艇、炮舰数量等方面对比。
使用柱状图突出中日对比。
3)中日装备对比篇
包含5个方面:体制对比、军力对比、军舰对比、造价对比、军费对比。
散点图、雷达图、柱状图、折线图、等等。
4)中日历史人物篇
中日关键人物、中日决策你模式对比。
使用力导向图理清中日关键人物之间的联系。
5)北洋舰队殉国将领篇
祭奠北洋舰队殉国将领,使用散点图。(2)项目结构(主要包含五部分)
文件名称:Sino-Japanese-war-1895
以上文件必须放在ECharts文件中的topic子文件中,因为还有很多ECharts本身的很多库要用。
js子文件夹:
fonts子文件夹:
CSS子文件夹:
代码系列:
这里的CSS文件比较多,大家有兴趣的可以到CODE中下载源代码,我已经全部上传,地址在最后给出。这里主要讲主页面和主要的js文件。
index.html 主页面
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts 甲午之殇:纪念甲午战争120周年专题</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="the Sino-Japanese War"> <meta name="author" content="linzhifeng@baidu.com"> <link href=http://www.mamicode.com/asset/css/bootstrap.min.css" rel="stylesheet">>js文件
bigwarship00.js 代码比较长,大家可以下载下来看,实现功能大海战。
national00.js 代码 实现功能:国力对比篇
var fileLocation = '../../www/js/echarts-map'; require.config({ paths:{ echarts:fileLocation, 'echarts/chart/bar' : fileLocation, 'echarts/chart/line': fileLocation } }); require( [ 'echarts', 'echarts/chart/bar', 'echarts/chart/line' ] ); //(1) national var national ; function disposeNation00(){ //setTimeout(disposeNation00(),5000); if(national) { national.dispose(); national=false; } disposeNation00Test(); } function setOptionNation00() { setOptionNation00Test(); var ec = require('echarts'); national = ec.init(document.getElementById('national00')); national.setOption({ title : { text: '中日战前国力对比', subtext: '数据来自新浪军事、腾讯军事' }, tooltip : { trigger: 'axis' }, legend: { data:['大清', '日本'] }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'value', boundaryGap : [0, 0.01] } ], yAxis : [ { type : 'category', data : ['人口总数','国土面积','年政府财政收入'] } ], series : [ { name:'大清', type:'bar', barMinHeight:5, itemStyle : { normal: { label : { formatter:function(a,b,c) { switch(b) { case '人口总数': var res_value=c+'万人口'; break; case '国土面积': var res_value=c+'万平方公里'; break; case '年政府财政收入': var res_value=c+'万两白银'; break; } return res_value; },show: true,textStyle:{color:'#704214'}}}}, data:[40000,1000, 8867] //itemStyle : { normal: {label : {position: 'inside'}}} }, { name:'日本', type:'bar', barMinHeight:5, itemStyle : { normal: { label : { formatter:function(a,b,c) { switch(b) { case '人口总数': var res_value=c+'万人口'; break; case '国土面积': var res_value=c+'万平方公里'; break; case '年政府财政收入': var res_value=c+'万两白银'; break; } return res_value; }, show: true,textStyle:{color:'#008B8B'}}}}, data:[4000, 37, 7885] } ] }); } //(2) national_Test var national_Test; function disposeNation00Test(){ //setTimeout(disposeNation00Test(),5000); if(national_Test) { national_Test.dispose(); national_Test=false; } } function setOptionNation00Test() { var ec = require('echarts'); national_Test = ec.init(document.getElementById('national00Test')); national_Test.setOption({ title :{ text : '战中、战后对比' }, tooltip : { //trigger: 'axis' trigger: 'item' }, legend: { show:false, x : 'center', y : 'bottom', data:['大清', '日本'] }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'value', boundaryGap : [0, 0.01] } ], yAxis : [ { type : 'category', data : ['动员兵力','炮舰数量','水雷艇','战舰总吨位','死伤总数'] } ], series : [ { name:'大清', type:'bar', barMinHeight:5, itemStyle : { normal: { label : { formatter:function(a,b,c) { switch(b) { case '动员兵力': var res_value=c*10000+'人'; break; case '炮舰数量': var res_value=c+'艘'; break; case '水雷艇': var res_value=c+'艘'; break; case '战舰总吨位': var res_value=c+'万吨'; break; case '死伤总数': var res_value=c+'万人'; break; } return res_value; }, show: true,textStyle:{color:'#008B8B'}}}}, data:[96.2463,82,25,8.5000,3.5000] //itemStyle : { normal: {label : {position: 'inside'}}} }, { name:'日本', type:'bar', barMinHeight:5, itemStyle : { normal: { label : { formatter:function(a,b,c) { switch(b) { case '动员兵力': var res_value=c*10000+'人'; break; case '炮舰数量': var res_value=c+'艘'; break; case '水雷艇': var res_value=c+'艘'; break; case '战舰总吨位': var res_value=c+'万吨'; break; case '死伤总数': var res_value=c*10000+'人'; break; } return res_value; },show: true,textStyle:{color:'#704214'}}}}, data:[24.0616,28,24,5.9106,1.3488] } ] }); }scatter00.js 代码 实现功能:殉国将领篇
var fileLocation = '../../www/js/echarts-map'; require.config({ paths:{ echarts:fileLocation, 'echarts/chart/bar' : fileLocation, 'echarts/chart/line': fileLocation, 'echarts/chart/scatter':fileLocation } }); require( [ 'echarts', 'echarts/chart/bar', 'echarts/chart/line', 'echarts/chart/scatter' ] ); var scatter0 ; function disposeScatter00(){ //setTimeout(disposeScatter00(),5000); if(scatter0) { scatter0.dispose(); scatter0=false; } } function setOptionScatter00() { var ec = require('echarts'); scatter0 = ec.init(document.getElementById('scatter00')); scatter0.setOption({ title : { text: '北洋舰队殉国将领' }, tooltip : { trigger: 'item', showDelay : 0, axisPointer:{ type : 'cross', lineStyle: { type : 'dashed', width : 1 } }, formatter : function (value) { return '北洋水师:'+value[0]+'<br/>'+value[1]; } }, legend: { data:['水师提督','水师管带'] }, toolbox: { show : true, feature : { mark : {show: true}, dataZoom : {show: true}, dataView : {show: true, readOnly: false}, restore : {show: true}, saveAsImage : {show: true} } }, xAxis : [ { type : 'value', power: 1, precision: 2, scale:true, splitNumber:10, min:0, max:800, axisLabel:false, axisLine:false } ], yAxis : [ { type : 'value', power: 1, precision: 2, scale:true, min:0, max:600, splitNumber:10, axisLabel:false, axisLine:false } ], series : [ { name:'水师提督', type:'scatter', symbolSize:50, itemStyle: { normal : { label : { show: true, formatter : function(a,b,c) { switch(b) { case '丁汝昌': var res_name=b+'\n'+'['+a+']\n\n'+'在威海保卫战中弹尽\n粮绝后自杀殉国。'; break; case '刘步蟾': var res_name=b+'\n'+'['+a+']\n\n'+'远舰舰管带,在\n威海保卫战中弹尽\n粮绝后自杀殉国。'; break; case '林泰曾': var res_name=b+'\n'+'['+a+']\n\n'+'镇远舰管带,镇\n远号入港时触礁受\n损,自认失职后自杀。'; break; case '林永升': var res_name=b+'\n'+'['+a+']\n\n'+'经远舰管带,大\n东沟海战中壮烈牺牲。'; break; case '林履中': var res_name=b+'\n'+'['+a+']\n\n'+'扬威舰管带,大\n东沟海战中壮烈牺牲。'; break; case '黄建勋': var res_name=b+'\n'+'['+a+']\n\n'+'超勇舰管带,大\n东沟海战中壮烈牺牲。'; break; case '邓世昌': var res_name=b+'\n'+'['+a+']\n\n'+'致远舰管带,大\n东沟海战中壮烈牺牲。'; break; } return res_name; }, textStyle:{color:'#FF4D00'} } } }, data: [ {name: '丁汝昌',symbol: 'image://./images/12001.png',itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'14'}}}}, value: [138.53,400.38]} ] }, { name:'水师管带', type:'scatter', symbolSize:50, itemStyle: { normal : { color:'#27727B', label : { show: true, formatter : function(a,b,c) { switch(b) { case '丁汝昌': var res_name=b+'\n'+'['+a+']\n\n'+'在威海保卫战中弹尽\n粮绝后自杀殉国。'; break; case '刘步蟾': var res_name=b+'\n'+'['+a+']\n\n'+'远舰舰管带,在\n威海保卫战中弹尽\n粮绝后自杀殉国。'; break; case '林泰曾': var res_name=b+'\n'+'['+a+']\n\n'+'镇远舰管带,镇\n远号入港时触礁受\n损,自认失职后自杀。'; break; case '林永升': var res_name=b+'\n'+'['+a+']\n\n'+'经远舰管带,大\n东沟海战中壮烈牺牲。'; break; case '林履中': var res_name=b+'\n'+'['+a+']\n\n'+'扬威舰管带,大\n东沟海战中壮烈牺牲。'; break; case '黄建勋': var res_name=b+'\n'+'['+a+']\n\n'+'超勇舰管带,大\n东沟海战中壮烈牺牲。'; break; case '邓世昌': var res_name=b+'\n'+'['+a+']\n\n'+'致远舰管带,大\n东沟海战中壮烈牺牲。'; break; } return res_name; }, textStyle:{ fontFamily:'sans-serif',color:'#27727B'} } } }, data: [ {name: '刘步蟾',symbol: 'image://./images/12004.png', itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'14'}}}}, value: [420.9, 400.38]}, {name: '邓世昌',symbol: 'image://./images/12002.png', itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'14'}}}}, value: [704,400.38]}, {name: '林泰曾',symbol: 'image://./images/12006.png', itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'14'}}}}, value: [138.53,100]}, {name: '林永升',symbol: 'image://./images/12007.png', itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'14'}}}}, value: [738.9,100]}, {name: '林履中',symbol: 'image://./images/12005.png', itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'14'}}}}, value: [538.8,100]}, {name: '黄建勋',symbol: 'image://./images/12003.png', itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'14'}}}}, value: [338.53,100]} ] } ] }); }
warship01.js 实现功能:装备对比篇var fileLocation = '../../www/js/echarts-map'; require.config({ paths:{ echarts:fileLocation, 'echarts/chart/bar' : fileLocation, 'echarts/chart/line': fileLocation } }); require( [ 'echarts', 'echarts/chart/bar', 'echarts/chart/line' ] ); // (1) 体制对比 var myChart0 ; function disposeWarship00(){ //setTimeout(disposeWarship00(),5000); if(myChart0) { myChart0.dispose(); myChart0=false; } // 02 disposeWarship01(); disposeWarship01Test(); // 03 disposeWarship02(); // 04 disposeWarship03(); // 05 disposeWarship04(); disposeWarship04Test(); } function setOptionWarship00() { //01 var ec = require('echarts'); myChart0 = ec.init(document.getElementById('warship00')); myChart0.setOption({ title : { text: '中日海军体制对比', subtext: '消息来自腾讯军事、搜狐军事' }, tooltip : { trigger: 'item', formatter: "{a} <br/>{b}" }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, restore : {show: true}, saveAsImage : {show: true} } }, legend: { data : ['北洋舰队','南阳舰队','福建舰队','广东舰队'] }, calculable : true, series : [ { name:'清朝海军分属节制', type:'funnel', x:'20%', width: '40%', itemStyle: { normal: { // color: 各异, label: { position: 'left' } } }, data:[ {value:80, name:'直隶总督:北洋舰队'}, {value:40, name:'两江总督:南阳舰队'}, {value:20, name:'船政大臣:福建舰队'}, {value:60, name:'两广总督:广东舰队'} ] }, { name:'日本海军统一管辖', type:'funnel', x : '50%', sort : 'ascending', itemStyle: { normal: { // color: 各异, label: { position: 'right' } } }, data:[ {value:60, name:'日本联合舰队'} ] } ] }); //02 setOptionWarship01(); setOptionWarship01Test(); //03 setOptionWarship02(); //04 setOptionWarship03(); //05 setOptionWarship04(); setOptionWarship04Test(); } // (2) 军力对比 var myChart1 ; function disposeWarship01(){ //setTimeout(disposeWarship01(),5000); if(myChart1) { myChart1.dispose(); myChart1=false; } } function setOptionWarship01() { var ec = require('echarts'); //data : ['总排水量','总兵力','鱼雷发射管','编队马力','火炮数量','平均航速'] var myChart1 = ec.init(document.getElementById('warship01')); myChart1.setOption({ title: { text: '中日海军军力对比', subtext: '北洋舰队整体实力不及日本', sublink: '' }, tooltip : { trigger: 'axis', axisPointer : { type : 'shadow' } }, legend: { data:['北洋舰队','日本海军'] }, toolbox: { show : true, orient: 'vertical', x: 'right', y: 'center', feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'category', data : ['总兵力/人','鱼雷发射管/架','火炮数量/门','平均航速/节'] } ], yAxis : [ { axisLine:false, axisLabel:false } ], series : [ { name:'北洋舰队', type:'bar', barMinHeight:5, itemStyle: {normal: { label:{show:true,formatter:function(a,b,c){ switch(b) { case '总兵力/人': var res= c ; break; case '鱼雷发射管/架': var res= c ; break; case '火炮数量/门': var res= c ; break; case '平均航速/节': var res= c; break; } return res; }} }}, data:[ 2126, 556, 195, 10.2] //data:[32100, 2126, 556, 42200, 195, 10.2] }, { name:'日本海军', type:'bar', barMinHeight:5, //stack: '总量', //itemStyle : { normal: { color:'#B399FF', itemStyle : { normal: { label : {show: true, formatter:function(a,b,c){ switch(b) { case '总兵力/人': var res= c ; break; case '鱼雷发射管/架': var res= c ; break; case '火炮数量/门': var res= c ; break; case '平均航速/节': var res= c; break; } return res; },position: 'top'}}}, data:[ 3916, 568, 268, 14.5] //data:[40840, 3916, 568, 68900, 268, 14.5] } ] }); } // (2) 军力对比 Test部分 var myChart1bottom ; function disposeWarship01Test(){ //setTimeout(disposeWarship01Test(),5000); if(myChart1bottom) { myChart1bottom.dispose(); myChart1bottom=false; } } function setOptionWarship01Test() { var ec = require('echarts'); myChart1bottom = ec.init(document.getElementById('warship01_bottom')); myChart1bottom.setOption({ tooltip : { trigger: 'axis', formatter:function(a,b,c){ var res_jiawu= a[0][0]+'<br/>'+a[0][3]; for(var i=0;i<a.length;i++) { switch(a[0][3]) { case '总排水量': res_jiawu+='<br/>'+a[i][1]+':'+a[i][2]+'吨'; break; case '编队马力': res_jiawu+='<br/>'+a[i][1]+':'+a[i][2]+'匹'; break; case '大口径火炮数': res_jiawu+='<br/>'+a[i][1]+':'+a[i][2]+'门'; break; case '火炮:一分钟投弹数量': res_jiawu+='<br/>'+a[i][1]+':'+a[i][2]+'发'; break; case '火炮:一分钟投射重量': res_jiawu+='<br/>'+a[i][1]+':'+a[i][2]+'千克'; break; case '速射炮数量': res_jiawu+='<br/>'+a[i][1]+':'+a[i][2]+'门'; break; } } return res_jiawu; } }, legend: { orient : 'vertical', x : 'right', y : 'bottom', data:['北洋舰队','日本联合舰队'] }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, restore : {show: true}, saveAsImage : {show: true} } }, polar : [ { indicator : [ { text: '总排水量', max: 50000}, { text: '编队马力', max: 70000}, { text: '大口径火炮数', max: 200}, { text: '火炮:一分钟投弹数量', max: 300}, { text: '火炮:一分钟投射重量', max: 6000}, { text: '速射炮数量', max: 100} ] } ], calculable : true, series : [ { name: '北洋舰队 vs 日本联合舰队', type: 'radar', data : [ { value : [32100, 42200, 58, 22, 1864, 0], name : '北洋舰队' }, { value : [40840, 68900, 104, 232,5965, 89], name : '日本联合舰队', itemStyle:{ normal:{ label:{ show:true, textStyle:{color:'green'}, formatter:function(a,b,c){ switch(b) { case '总排水量': var res= c +'吨'; break; case '编队马力': var res= c +'匹'; break; case '大口径火炮数': var res= c +'门'; break; case '火炮:一分钟投弹数量': var res= c + '发'; break; case '火炮:一分钟投射重量': var res= c +'千克'; break; case '速射炮数量': var res= c +'门'; break; } return res; } } } } } ] } ] }); } // (3) 军舰对比 var myChart2 ; function disposeWarship02(){ //setTimeout(disposeWarship02(),5000); if(myChart2) { myChart2.dispose(); myChart2=false; } } function setOptionWarship02() { var ec = require('echarts'); myChart2 = ec.init(document.getElementById('warship02')); myChart2.setOption({ title : { text: '中日海军参战军舰对比' }, tooltip : { trigger: 'axis', showDelay : 0, axisPointer:{ type : 'cross', lineStyle: { type : 'dashed', width : 1 } }, formatter : function (value) { if (value[2].length > 1) { return value[0] + ' :<br/>' + '排水量:'+value[2][0] + '吨 ' +'<br/>' + '船速:'+value[2][1] + '节 '; } else { return value[0] + ' :<br/>' + value[1] + ' : ' + value[2] + '节 '; } } }, legend: { data:['北洋舰队','日本联合舰队'] }, toolbox: { show : true, feature : { mark : {show: true}, dataZoom : {show: true}, dataView : {show: true, readOnly: false}, restore : {show: true}, saveAsImage : {show: true} } }, xAxis : [ { type : 'value', name:'排水量/吨', power: 1, precision: 2, scale:true, splitNumber:10, min:400, max:8000, axisLabel : { formatter: '{value} ' } } ], yAxis : [ { type : 'value', name:'速度/节', power: 1, precision: 2, scale:true, min:10, max:26, splitNumber:10, axisLabel : { formatter: '{value} ' } } ], series : [ { name:'北洋舰队', type:'scatter', symbolSize:10, itemStyle: { normal : { label : { show: true, formatter : '{b}', textStyle:{color:'#FF4D00'} } } }, //北洋舰队 主要舰队有13艘 //1广丙 2广甲 3超勇 4平远 5济远 6经远 7致远 8定远旗舰 data: [ {name: '广丙舰',itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [1000, 17]}, {name: '广甲舰',symbolSize:10,itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [1209,15]}, {name: '超勇与扬威舰',symbolSize:10,itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [1350,15]}, {name: '平远舰',itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [ 2100,14.5]}, {name: '济远舰',itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [2300,15]}, {name: '经远与来远舰',itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [2900,15.5]}, {name: '致远与靖远舰',itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [2300,18]}, {name: '定远旗舰与镇远旗舰',itemStyle:{normal:{label:{show:true,textStyle:{fontSize:'12'}}}}, value: [7335,14.5]} ], markLine : { data : [ {type : 'average', name: '平均航速'} ] } }, { name:'日本联合舰队', type:'scatter', symbolSize:10, itemStyle: { normal : { label : { show: true, formatter : '{b}', textStyle:{color:'#27727B'} } } }, //日本联合舰队有13艘 型号相同的归为同一类(主炮、排水、速度) //1赤城 2比睿 3扶桑 4西京丸 5松岛 6桥立 7高千惠 8千代田 9吉野 10秋津洲 data: [ {name: '赤城舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [622, 10.25]}, {name: '比睿舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [2284,13.2]}, {name: '扶桑舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [3777,13]}, {name: '西京丸舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [4100,15]}, {name: '松岛与严岛舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [4278,16]}, {name: '桥立舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [4278,17.5]}, {name: '高千惠与浪速舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [3709,18]}, {name: '千代田舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [2439,19]}, {name: '吉野舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [4216,22.5]}, {name: '秋津洲舰',itemStyle:{normal:{label:{show:true,textStyle:{color:'#27727B',fontSize:'12'}}}}, value: [3150,26]} ], markLine : { data : [ {type : 'average', name: '平均航速'} ] } } ] }); } // (4) 军舰造价对比 var myChart03 ; function disposeWarship03(){ //setTimeout(disposeWarship03(),5000); if(myChart03) { myChart03.dispose(); myChart03=false; } } function setOptionWarship03() { var ec = require('echarts'); myChart03 = ec.init(document.getElementById('warship03')); myChart03.setOption({ title: { text: '中日主力战舰造价对比', x:'left', y:'top' }, tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, legend: { data:['北洋舰队','日本联合舰队'] }, toolbox: { show : true, orient: 'vertical', x: 'right', y: 'center', feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'category', data : ['定远 vs 吉野','镇远 vs 松岛','致远 vs 严岛','靖远 vs 桥力','经远 vs 秋津洲'] } ], yAxis : [ { axisLine:false, axisLabel:false } ], series : [ { name:'北洋舰队', type:'bar', barMinHeight:5, itemStyle: {normal: { label:{show:true,formatter:function(a,b,c){ switch(b) { case '定远 vs 吉野': var res= c ; break; case '镇远 vs 松岛': var res= c ; break; case '致远 vs 严岛': var res= c ; break; case '靖远 vs 桥力': var res= c; break; case '经远 vs 秋津洲': var res= c; break; } return res+'万两'; }} //},textStyle:{color:'#27727B'}} }}, data:[ 141, 141, 83, 83, 84] }, { name:'日本联合舰队', type:'bar', barMinHeight:5, itemStyle : { normal: { color:'#00BFFF', label : {show: true, formatter:function(a,b,c){ switch(b) { case '定远 vs 吉野': var res= c ; break; case '镇远 vs 松岛': var res= c ; break; case '致远 vs 严岛': var res= c ; break; case '靖远 vs 桥力': var res= c; break; case '经远 vs 秋津洲': var res= c; break; } return res+'\n'+'万两'; },position: 'inside'}}}, data:[ 182, 160, 160, 160,137] } ] }); } // (5) 军费对比 var myChart4 ; function disposeWarship04(){ //setTimeout(disposeWarship04(),5000); if(myChart4) { myChart4.dispose(); myChart4=false; } } function setOptionWarship04() { var ec = require('echarts'); myChart4 = ec.init(document.getElementById('warship04')); myChart4.setOption({ tooltip : { trigger: 'axis' }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, legend: { data:['北洋舰队军费','日本海军军费','日中军费比值'] }, xAxis : [ { type : 'category', data : ['1876年','1877年','1878年','1880年','1881年','1882年','1884年','1885年','1886年','1888年','1889年','1893年'] } ], yAxis : [ { type : 'value', name : '白银', axisLabel : { formatter: '{value} 万两' } }, { type : 'value', name : '日本军费/北洋军费' } ], series : [ { name:'北洋舰队军费', type:'bar', data:[200.0, 200.0, 57.0, 57.2, 410.6, 160.7, 210.6, 600.2, 198.6, 200.0, 200.4, 210.3], markLine:{ data:[ {type : 'average', name: '平均值'} ] } }, { name:'日本海军军费', type:'bar', data:[400.0, 401.0, 200.0, 230.4, 600.7, 360.7, 670.6, 830.2, 760.7, 818.8, 1100.0, 760.3], // data:[200.0, 200.0, 57.0, 57.2, 410.6, 160.7, 210.6, 600.2, 198.6, 200.0, 200.4, 210.3] markLine:{ data:[ {type : 'average', name: '平均值'} ] } }, { name:'日中军费比值', type:'line', yAxisIndex: 1, data:[2.0, 2.005, 3.5, 4.03, 1.462, 2.245, 3.184, 1.383, 3.830,4.094, 5.49, 3.62] } ] }); } // (5) Test部分 var myChartbottom04 ; function disposeWarship04Test(){ //setTimeout(disposeWarship04Test(),5000); if(myChartbottom04) { myChartbottom04.dispose(); myChartbottom04=false; } } function setOptionWarship04Test(){ var ec = require('echarts'); myChartbottom04 = ec.init(document.getElementById('warship04_bottom')); myChartbottom04.setOption({ tooltip : { show: true, trigger: 'item' }, legend: { data:['北洋舰队','日本海军'] }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'category', data : ['舰队军费总投入'] } ], yAxis : [ { type : 'value', name : '白银', axisLabel : { formatter: '{value} 万两' } } ], series : [ { name:'北洋舰队', type:'bar', barWidth: 80, itemStyle: { normal: { borderRadius: 5, color : (function (){ var zrColor = require('zrender/tool/color'); return zrColor.getLinearGradient( 0, 400, 0, 300, [[0, 'green'],[1, '#FF8033']] ) })(), label : { show : true, textStyle : { fontSize : '15', fontFamily : '微软雅黑', fontWeight : 'bold' }, formatter:function(a,b,c){ var spendmony= c + '\n'+'万两'; return spendmony; } } } }, data:[{value:3300, itemStyle : { normal: {label : {position: 'inside'}}}} ] }, { name:'日本海军', type:'bar', barWidth: 80, itemStyle: { normal: { borderRadius: 5, color : (function (){ var zrColor = require('zrender/tool/color'); return zrColor.getLinearGradient( 0, 0, 1000, 0, [[0, 'rgba(30,144,255,0.8)'],[1, '#00BFFF']] ) })(), label : { show : true, textStyle : { fontSize : '15', fontFamily : '微软雅黑', fontWeight : 'bold' }, formatter:function(a,b,c){ var spendmony= c + '\n'+'万两'; return spendmony; } } } }, data:[{value:8800, itemStyle : { normal: {label : {position: 'inside'}}}} ] } ] }); }relation00.js 代码 实现功能:历史人物篇
var fileLocation = '../../www/js/echarts-map'; require.config({ paths:{ echarts:fileLocation, 'echarts/chart/bar' : fileLocation, 'echarts/chart/line': fileLocation, 'echarts/chart/force' : fileLocation } }); require( [ 'echarts', 'echarts/chart/bar', 'echarts/chart/line', 'echarts/chart/force' ] ); // load function //(1) relations 秦朝 var relation0; function disposeRelation00(){ //setTimeout(disposeRelation00(),5000); if(relation0) { relation0.dispose(); relation0=false; } disposeRelation01();// dispose } function setOptionRelation00() { setOptionRelation01(); var ec = require('echarts'); relation0 = ec.init(document.getElementById('relation00')); relation0.setOption({ title : { text: '清廷内部,深陷“党”争', subtext: '数据来自戚其章:《甲午战争史》', x:'right', y:'bottom' }, tooltip : { trigger: 'item', formatter: '{a} : {b}' }, toolbox: { show : true, feature : { restore : {show: true}, saveAsImage : {show: true} } }, legend: { x: 'left', data:['主战派','主和派'] }, series : [ { type:'force', name : "人物关系", categories : [ { name: '决策人物' }, { name: '主战派' }, { name:'主和派' } ], itemStyle: { normal: { label: { show: true, textStyle: { color: '#333' } }, nodeStyle : { brushType : 'both', strokeColor : 'rgba(255,215,0,0.4)', lineWidth : 1 } }, emphasis: { label: { show: false }, nodeStyle : { //r: 30 }, linkStyle : {} } }, useWorker: false, minRadius : 15, maxRadius : 25, gravity: 1.1, scaling: 1.1, linkSymbol: 'arrow', nodes:[ {category:0, name: '慈禧太后', value : 10}, {category:1, name: '光绪帝',value : 8}, {category:1, name: '裕绂',value : 3}, {category:1, name: '叶应增',value : 3}, {category:1, name: '翁同龢',value : 7}, {category:1, name: '志锐',value : 5}, {category:2, name: '李鸿章',value : 8}, {category:2, name: '奕昕',value : 6}, {category:2, name: '陈京莹',value : 4}, {category:2, name: '聂士成',value : 4}, {category:2, name: '叶志超',value : 1}, ], links : [ {source : '光绪帝', target : '慈禧太后', weight : 1}, {source : '裕绂', target : '慈禧太后', weight : 2}, {source : '叶应增', target : '慈禧太后', weight : 1}, {source : '翁同龢', target : '慈禧太后', weight : 2}, {source : '光绪帝', target : '翁同龢', weight : 5}, {source : '志锐', target : '慈禧太后', weight : 3}, {source : '李鸿章', target : '慈禧太后', weight : 6}, {source : '奕昕', target : '慈禧太后', weight : 6}, {source : '陈京莹', target : '慈禧太后', weight : 2}, {source : '聂士成', target : '慈禧太后', weight : 1}, {source : '叶志超', target : '慈禧太后', weight : 1}, {source : '叶应增', target : '翁同龢', weight : 1}, {source : '李鸿章', target : '光绪帝', weight : 1}, {source : '李鸿章', target : '翁同龢', weight : 1}, {source : '聂士成', target : '李鸿章', weight : 1}, {source : '奕昕', target : '李鸿章', weight : 6} ] } ] }); } // relation (2) 日本人物 var relation1; function disposeRelation01(){ setTimeout(disposeRelation01(),5000); if(relation1) { relation1.dispose(); relation1=false; } } function setOptionRelation01() { var ec = require('echarts'); relation1 = ec.init(document.getElementById('relation01')); relation1.setOption({ title : { text: '日本:即使找不到正当借口也誓要兴战', subtext: '数据来自日本外务省编:《日本外交文书》', x:'right', y:'bottom' }, tooltip : { trigger: 'item', formatter: '{a} : {b}' }, toolbox: { show : true, feature : { restore : {show: true}, saveAsImage : {show: true} } }, legend: { x: 'left', data:['关键人物'] }, series : [ { type:'force', name : "人物关系", categories : [ { name: '决策人物' }, { name: '关键人物' } ], itemStyle: { normal: { label: { show: true, textStyle: { color: '#333' } }, nodeStyle : { brushType : 'both', strokeColor : 'rgba(255,215,0,0.4)', lineWidth : 1 } }, emphasis: { label: { show: false // textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE }, nodeStyle : { //r: 30 }, linkStyle : {} } }, useWorker: false, minRadius : 15, maxRadius : 25, gravity: 1.1, scaling: 1.1, linkSymbol: 'arrow', nodes:[ {category:0, name: '日本天皇', value : 10}, {category:1, name: '坪井航三',value : 2}, {category:1, name: '上村彦之丞',value : 3}, {category:1, name: '东乡平八郎',value : 3}, {category:1, name: '桦山资纪',value : 6}, {category:1, name: '陆奥宗光',value : 5}, {category:1, name: '伊东祐亨',value : 7}, {category:1, name: '伊藤博文',value : 9}, {category:1, name: '山县有朋',value : 6} ], links : [ {source : '坪井航三', target : '日本天皇', weight : 1}, {source : '上村彦之丞', target : '日本天皇', weight : 2}, {source : '东乡平八郎', target : '日本天皇', weight : 1}, {source : '桦山资纪', target : '日本天皇', weight : 2}, {source : '陆奥宗光', target : '日本天皇', weight : 3}, {source : '伊东祐亨', target : '日本天皇', weight : 6}, {source : '伊藤博文', target : '日本天皇', weight : 6}, {source : '东乡平八郎', target : '上村彦之丞', weight : 1}, {source : '伊东祐亨', target : '上村彦之丞', weight : 1}, {source : '伊东祐亨', target : '东乡平八郎', weight : 1}, {source : '伊东祐亨', target : '桦山资纪', weight : 1}, {source : '山县有朋', target : '日本天皇', weight : 1}, {source : '伊藤博文', target : '陆奥宗光', weight : 6}, {source : '伊藤博文', target : '东乡平八郎', weight : 1}, {source : '山县有朋', target : '伊藤博文', weight : 5} ] } ] }); }
ECharts官网:
以上就是专题的主要内容,详细代码可以到ECharts官网和我的CSDN code 下载,谢谢!欢迎大家讨论,再次感谢CSDN组织这次活动,感谢林峰老师给我这次机会,祝愿开源夏令营越办越好,ECharts功能越来越完善!
我的CSDN code 地址:https://code.csdn.net/u013476464/baidu_data_visualization
Echarts官网:http://echarts.baidu.com/
ZRender:http://ecomfe.github.io/zrender/
CSDN开源夏令营 百度数据可视化实践 ECharts 11 (期末总结)