echarts简单条形图和饼状图
填充条形图:
我这说的固定的意思是要展示的字段是已知的,动态的是接受到的后台返回的json然后遍历动态加载。
1.固定值
function xmhtCountByMonthBar(data){
var dom = document.getElementById("xmhtCountByMonthBar");
var myChart = echarts.init(dom);
var app = {};
option = null;
option = {
legend: {},
tooltip: {},
dataset: {
source: [
['product', '合同数'],
['1月', data.xmhts1],
['2月', data.xmhts2],
['3月', data.xmhts3],
['4月', data.xmhts4],
['5月', data.xmhts5],
['6月', data.xmhts6],
['7月', data.xmhts7],
['8月', data.xmhts8],
['9月', data.xmhts9],
['10月', data.xmhts10],
['11月', data.xmhts11],
['12月', data.xmhts12]
]
},
toolbox: {
show: true,
feature: {
mark: { show: false },
dataView: { show: false, readOnly: false },
magicType: {
show: true,
type: ['pie', 'funnel']
},
restore: { show: false },
saveAsImage: { show: true }
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [{type: 'category', splitLine:{show: true},
splitArea:{
show:true,
areaStyle:{
color:['rgba(100, 100, 100, 0.03)'],
}
}
}],
yAxis: {
type: 'value',
name: '数量(个)',
min: 0,
// max: 50,
// interval: 5,
minInterval: 1, //设置成1保证坐标轴分割刻度显示成整数。
axisLabel: {
formatter: '{value}'
}
},
series: [
{type: 'bar',
itemStyle : { normal: {label : {show: true, position: 'top',textStyle:{color:'#000000'}} }},
barWidth : 15,
},
]};
if (option && typeof option === "object") {myChart.setOption(option, true);}
}
如图:

2.动态填充
function xmhtCountByZbgsBar(names,nums){//接受names列名称,nums列值
var dom = document.getElementById("xmhtCountByZbgsBar");
var myChart = echarts.init(dom);
myChart.setOption({
tooltip: {},
legend: {
data:['合同数']
},
xAxis: {
data: [],
axisLabel:{
formatter:function(value){
return value.split("").join("\n");
}
},
type: 'category',
splitLine:{show: true},
splitArea:{
show:true,
areaStyle:{
color:['rgba(100, 100, 100, 0.03)'],
}
}
},
toolbox: {
show: true,
feature: {
mark: { show: false },
dataView: { show: false, readOnly: false },
magicType: {
show: true,
type: ['pie', 'funnel']
},
restore: { show: false },
saveAsImage: { show: true }
}
},
yAxis: {
type: 'value',
name: '数量(个)',
min: 0,
// max: 50,
// interval: 5,
minInterval: 1, //设置成1保证坐标轴分割刻度显示成整数。
axisLabel: {
formatter: '{value}'
}
},
series: [{
name: '个数',
type: 'bar',
data: []
}]
});
myChart.setOption({ //加载数据图表
xAxis: {
data: names
},
series: [{
// 根据名字对应到相应的系列
name: '数量',
data: nums,
itemStyle : { normal: {label : {show: true, position: 'top',textStyle:{color:'#000000'}} }},
barWidth : 15,
}]
});
}
如图:

填充饼图:
1.设置固定值
function xmhtByMonthSector(data){
var myChart = echarts.init(document.getElementById('xmhtByMonthSector'));
var option = {
title: {
x: 'left',
y: 'left'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
x: 'right',
y: 'bottom',
data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
},
toolbox: {
show: true,
feature: {
mark: { show: false },
dataView: { show: false, readOnly: false },
magicType: {
show: true,
type: ['pie', 'funnel']
},
restore: { show: false },
saveAsImage: { show: true }
}
},
calculable: true,
series: [
{
name: '数量',
type: 'pie',
radius: ['30%', '60%'],
center: ['45%', '45%'],
//roseType: 'area',
data: [
{ value: data.xmhts1==0?null:data.xmhts1, name: '一月' },
{ value: data.xmhts2==0?null:data.xmhts2, name: '二月' },
{ value: data.xmhts3==0?null:data.xmhts3, name: '三月' },
{ value: data.xmhts4==0?null:data.xmhts4, name: '四月' },
{ value: data.xmhts5==0?null:data.xmhts5, name: '五月' },
{ value: data.xmhts6==0?null:data.xmhts6, name: '六月' },
{ value: data.xmhts7==0?null:data.xmhts7, name: '七月' },
{ value: data.xmhts8==0?null:data.xmhts8, name: '八月' },
{ value: data.xmhts9==0?null:data.xmhts9, name: '九月' },
{ value: data.xmhts10==0?null:data.xmhts10, name: '十月' },
{ value: data.xmhts11==0?null:data.xmhts11, name: '十一月' },
{ value: data.xmhts12==0?null:data.xmhts12, name: '十二月' }
],
/* tooltip: {
trigger: 'item',
showDelay: 20, // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
hideDelay: 20, // 隐藏延迟,单位ms
backgroundColor: 'rgba(255,0,0,0.7)', // 提示框背景颜色
textStyle: {
fontSize: '16px',
color: '#000' // 设置文本颜色 默认#FFF
},
formatter: '{a} <br/>{b} : {c}个 ({d}%)'
} */
}
]
};
myChart.setOption(option);
}
如图:

2.动态值
function xmhtByZbgsSector(names,nums){
var myChart = echarts.init(document.getElementById('xmhtByZbgsSector'));
myChart.setOption({
// color: ['#ff7d27', '#47b73d', '#fcc36e', '#57a2fd', "#228b22"],//饼图颜色
title: {
x: 'left',
y: 'left'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
toolbox: {
show: true,
feature: {
saveAsImage: { show: true }
}
},
legend: {
x: 'right',
y: 'bottom',
data: names
},
calculable: true,
series: [{
name: '数量',
type: 'pie',
radius: ['30%', '60%'],
center: ['45%', '40%'],
data: [],
// 设置值域的那指向线
labelLine: {
normal: {
show: true // show设置线是否显示,默认为true,可选值:true ¦ false
}
},
}]
});
//myChart.showLoading();
//myChart.hideLoading();
myChart.setOption({ //加载数据图表
legend: {
data: names
},
series: [{
data: nums
}]
});
// myChart.setOption(option);
}
如图:

//////////////////////////
//项目数量统计饼图
function itemsCountBySector1(data){
var myChart = echarts.init(document.getElementById('itemsSector1'));
var option = {
title: {
//text: '项目数量统计',
//subtext: '纯属虚构',
x: 'left',
y: 'left'
},
legend: {
// orient 设置布局方式,默认水平布局,可选值:'horizontal'(水平) ¦ 'vertical'(垂直)
orient: 'horizontal',
// x 设置水平安放位置,默认全图居中,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
x: 'center',
// y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
y: 'bottom',
itemWidth: 24, // 设置图例图形的宽
itemHeight: 18, // 设置图例图形的高
textStyle: {
color: '#666' // 图例文字颜色
},
// itemGap设置各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔
itemGap: 30,
backgroundColor: '#fff6f2', // 设置整个图例区域背景颜色
data: ['部门基本经费', '校内专项', '财政专项', '追加项目']
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
toolbox: {
show: true,
feature: {
saveAsImage: { show: true }
}
},
calculable: true,
series: [
{
name: '',
type: 'pie', //饼状图
radius: '65%', //大小
center: ['45%', '50%'], //显示位置
data: [
{ value: data.depSums==0?null:data.depSums, name: '部门基本经费' },
{ value: data.collegeSums==0?null:data.collegeSums, name: '校内专项' },
{ value: data.financeSums==0?null:data.financeSums, name: '财政专项' },
{ value: data.addSums==0?null:data.addSums, name: '追加项目' }
],
itemStyle: {
normal: {
label: { //此处为指示线文字
show: true,
position: 'inner', //标签的位置
textStyle: {
fontWeight: 200,
fontSize: 14 //文字的字体大小
},
formatter: ' {d}%'
},
}
},
},
],
}
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
如下:


浙公网安备 33010602011771号