Echarts柱状图,饼状图,折线图案例

论坛 期权论坛 脚本     
匿名技术用户   2021-1-16 01:49   445   0
 
 

在使用Echarts之前需要做的工作是引入Echarts所需的js:

<script type="text/javascript" src="${scriptsPath}/echarts/echarts.min.js" charset="utf-8"></script>

定义要在那个div区域显示图形:

<div class="similarity-sentence" id="similarity-sentence"></div>

<div class="unqualified-sentences" id="unqualified-sentences"></div>

下面的id就是是上面div的id

distributionDiagram:function(id,topSimilarSentenceInfo) {

var sentenceIndexArray = new Array();

var sentenceDataArray = new Array();

var colorListArray = new Array();

//获取句子的数量

if(docCheck.isNotBlank(topSimilarSentenceInfo)) {

var sentenceNum = topSimilarSentenceInfo.length;

for(var i = 0; i < sentenceNum; i++) {

sentenceIndexArray.push((i + 1) + '');

sentenceDataArray.push(100);

if(docCheck.isNotBlank(topSimilarSentenceInfo[i])) {

//表示的是progress-bar-danger,高度重合,危险型

if(topSimilarSentenceInfo[i].similarityValue >= 70) {

colorListArray.push('#ED6F87');

}

//表示的是progress-bar-warning,表示的警告类型的

else if(topSimilarSentenceInfo[i].similarityValue >= 40 && topSimilarSentenceInfo[i].similarityValue < 70) {

colorListArray.push('#E1B465');

}

//表示的是progress-bar-success这种颜色的,表示是的安全类型的

else if(topSimilarSentenceInfo[i].similarityValue < 40) {

colorListArray.push('#8ACD84');

}

} else {

colorListArray.push('#8ACD84');

}

}

}

//用于初始化这个图形

var myChart = echarts.init(document.getElementById(id));

var option = {

title:{text:'句子相似度分布图'},

color: ['#3398DB'],

tooltip : {

trigger: 'axis',

axisPointer : { // 坐标轴指示器,坐标轴触发有效

type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'

}

},

grid: {

left: '3%',

right: '4%',

bottom: '3%',

containLabel: true

},

xAxis : [

{

type : 'category',

data : sentenceIndexArray,

axisTick: {

alignWithLabel: true

},

axisLabel:{

show:true,

textStyle:{

fontSize:7

}

}

}

],

yAxis : [

{

show : true,

axisLabel : {

show:false

},

axisTick : {

show:false

},

type : 'value'

}

],

series : [

{

name:'句子平均相似度',

type:'bar',

barWidth: '100%',

tooltip:{

trigger : 'item',

formatter : function(params) {

var sentenceIndex = parseInt(params.name);

var rate = topSimilarSentenceInfo[sentenceIndex -1].similarityValue;

return '句子序号:' + params.name + '<br/>平均相似度:' + rate + '%';

}

},

data:sentenceDataArray,

itemStyle: {

normal: {

color: function(params) {

// build a color map as your need.

// var colorList = [

// '#ED6F87','#ED6F87','#ED6F87','#ED6F87','#ED6F87',

// '#8ACD84','#8ACD84','#8ACD84','#8ACD84','#8ACD84',

// '#8ACD84','#8ACD84','#8ACD84','#8ACD84','#8ACD84',

// '#8ACD84','#8ACD84','#8ACD84','#8ACD84','#8ACD84'

// ];

return colorListArray[params.dataIndex]

}

}

}

}

]

};

// 为echarts对象加载数据

myChart.setOption(option);

},

运行后的效果如下:


柱状图,饼状图,折线图案例:

/*

* name :tuzuoquan

* mail :email@qq.com

* date :2016/11/27

* version :1.0

* description:

* CopyRight (C) 2016-11-21

*/

(function($){

$.studentIndex = {

/*

* 获得json数据;数据格式查看jsonData中的json文件

* url: ajax 地址

* params type obj {} 配置返回数据的多少,day week month

*callback 用于实例化echart 的回调函数

*id 用于放置echart表的dom元素 id 不用加“#”

* name; 表盘的名字自定义

* */

getData:function(url,params,id,callback){

//console.log("url = " +url);

$.ajax({

type: "POST",

url: url,

//async: false,

dataType: 'json',

contentType: 'application/json; charset=utf-8',

data: params,

success: function(data) {

//console.log(data);

callback(id,data);

}

});

},

/**

* 初始化成图标

* id :表示要放置柱状图的div的id

* json :表示json数据的内容

*/

initBarChart:function(id,json) {

var legendDataArr = json.legendDataArr;

var xAxisDataArr = json.xAxisDataArr;

var seriesDataArr = json.seriesDataArr;

var title = json.title;

// 基于准备好的dom,初始化echarts图表

var myChart = echarts.init(document.getElementById(id));

var option = {

title:{

show:true,

text:title,

textStyle:{

fontSize:15,

fontWeight:'normal'

}

},

tooltip: {

show: true

},

legend: {

orient : 'horizontal',

x : 'center',

y : 'bottom',

data:[title/*,'月检测量2'**/]

},

xAxis : [

{

type : 'category',

data : ["12月","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月"]

}

//,

//{

// type : 'category',

// data : ["12月1","1月1","2月1","3月1","4月1","5月1","6月1","7月1","8月1","9月1","10月1","11月1"]

//}

],

yAxis : [

{

type : 'value'

}

],

series : [

{

"name":"月检测量",

"type":"bar",

"data":[20, 40, 80, 100, 120, 80,95,70,65,55,70,80]

}

]

};

option.legend.data = legendDataArr;

//定义x轴上的每列的标题

option.xAxis[0].data = xAxisDataArr[0].data;

//定义x轴上的每列的值

for(var i = 0; i < legendDataArr.length;i++) {

//添加上图例

option.series[i].name = legendDataArr[i];

//第二个是柱状图

option.series[i].type = "bar";

//为图标添加数据

option.series[i].data = seriesDataArr[i].data;

}

// 为echarts对象加载数据

myChart.setOption(option);

},

/**

* id :表示图标要放置的位置

* json :表示用于显示折线图时所用到的json数据

*/

initLineChart:function(id,json) {

var myChart = echarts.init(document.getElementById(id));

var legendDataArr = json.legendDataArr;

var xAxisDataArr = json.xAxisDataArr;

var seriesDataArr = json.seriesDataArr;

option = {

title:{

show:true,

text:"天检测量",

textStyle:{

fontSize:15,

fontWeight:'normal'

}

},

tooltip : {

trigger: 'axis'

},

legend: {

orient : 'horizontal',

x : 'center',

y : 'bottom',

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',

boundaryGap : false,

data : ['周一','周二','周三','周四','周五','周六','周日']

}

],

yAxis : [

{

type : 'value'

}

],

series : [

{

name:'天检测量',

type:'line',

stack: '总量',

data:[120, 132, 101, 134, 90, 230, 210]

}

]

};

option.legend.data = legendDataArr;

//定义x轴上的每列的标题

option.xAxis[0].data = xAxisDataArr[0].data;

//定义x轴上的每列的值

for(var i = 0; i < legendDataArr.length;i++) {

//添加上图例

option.series[i].name = legendDataArr[i];

//第二个是柱状图

option.series[i].type = "line";

//为图标添加数据

option.series[i].data = seriesDataArr[i].data;

}

// 为echarts对象加载数据

myChart.setOption(option);

},

/**

* id :表示图标要放置的位置

* json :表示用于显示柱状图时所用到的json数据

*/

initPieChart:function(id,json) {

var myChart = echarts.init(document.getElementById(id));

var legendDataArr = json.legendDataArr;

var seriesDataArr = json.seriesDataArr;

option = {

title:{

show:true,

text:"用户来源",

textStyle:{

fontSize:15,

fontWeight:'normal'

}

},

tooltip : {

trigger: 'item',

formatter: "{a} <br/>{b} : {c} ({d}%)"

},

legend: {

orient : 'horizontal',

x : 'center',

y : 'bottom',

//data:['华南','华东','西北','西南','华北',"华中"]

data:legendDataArr

},

toolbox: {

show : true,

feature : {

mark : {show: true},

dataView : {show: true, readOnly: false},

magicType : {

show: true,

type: ['pie', 'funnel'],

option: {

funnel: {

x: '25%',

width: '50%',

funnelAlign: 'center',

max: 1548

}

}

},

restore : {show: true},

saveAsImage : {show: true}

}

},

calculable : true,

series : [

{

name:'用户来源',

type:'pie',

radius : ['50%', '70%'],

itemStyle : {

normal : {

label : {

show : false

},

labelLine : {

show : false

}

},

emphasis : {

label : {

show : true,

position : 'center',

textStyle : {

fontSize : '20',

fontWeight : 'bold'

}

}

}

},

data:[

{value:seriesDataArr[0], name:legendDataArr[0]},

{value:seriesDataArr[1], name:legendDataArr[1]},

{value:seriesDataArr[2], name:legendDataArr[2]},

{value:seriesDataArr[3], name:legendDataArr[3]},

{value:seriesDataArr[4], name:legendDataArr[4]},

{value:seriesDataArr[5], name:legendDataArr[5]},

{value:seriesDataArr[6], name:legendDataArr[6]}

]

}

]

};

// option.legend.data = legendDataArr;

// //定义x轴上的每列的值

// for(var i = 0; i < legendDataArr.length;i++) {

// //添加上图例

// option.series[0].data[i].name = legendDataArr[i];

// //为图标添加数据

// option.series[0].data[i].value = seriesDataArr[i].data;

// }

// 为echarts对象加载数据

myChart.setOption(option);

}

};

})(jQuery);

$(function() {

$.studentIndex.getData(contextPath +"/admin/index/getMonthData.action", /**设置回调,对应的是后续项目中的action**/

{"id":"testId","roleId":"roleId"}, /**对应的是后续传递给后台action的params参数*/

'statistics-month', /**表示图标要放在哪个id的div中*/

$.studentIndex.initBarChart /**回调,用于生成图标用*/

);

//$.studentIndex.getData(scriptsPath + "common/index/month.json", /**设置回调,对应的是后续项目中的action**/

//{"id":"testId","roleId":"roleId"}, /**对应的是后续传递给后台action的params参数*/

//'statistics-month', /**表示图标要放在哪个id的div中*/

//$.studentIndex.initBarChart /**回调,用于生成图标用*/

//);

//$.studentIndex.getData(scriptsPath + "common/index/week.json", /**设置回调,对应的是后续项目中的action**/

// {"id":"testId","roleId":"roleId"}, /**对应的是后续传递给后台action的params参数*/

//'statistics-week', /**表示图标要放在哪个id的div中*/

//$.studentIndex.initLineChart /**回调,用于生成图标用*/

//);

$.studentIndex.getData(

contextPath + "/admin/index/getDayData.action", /**设置回调,对应的是后续项目中的action**/

{"id":"testId","roleId":"roleId"}, /**对应的是后续传递给后台action的params参数*/

'statistics-week', /**表示图标要放在哪个id的div中*/

$.studentIndex.initLineChart /**回调,用于生成图标用*/

);

// $.studentIndex.getData(

// scriptsPath + "/student/index/user.json", /**设置回调,对应的是后续项目中的action**/

// {"id":"testId","roleId":"roleId"}, /**对应的是后续传递给后台action的params参数*/

// 'statistics-user', /**表示图标要放在哪个id的div中*/

// $.studentIndex.initPieChart /**回调,用于生成图标用*/

// );

$.studentIndex.getData(

contextPath + "/admin/index/groupByArea.action", /**设置回调,对应的是后续项目中的action**/

{"id":"testId","roleId":"roleId"}, /**对应的是后续传递给后台action的params参数*/

'statistics-user', /**表示图标要放在哪个id的div中*/

$.studentIndex.initPieChart /**回调,用于生成图标用*/

);

//$.studentIndex.initPieChart("statistics-user","");

if ((navigator.userAgent.indexOf('MSIE') >= 0)

&& (navigator.userAgent.indexOf('Opera') < 0)){

$("#statistics-month").find("div:first-child").css("margin-left","-155px");

}

});

着出来的效果如下:


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP