xAxis.boundaryGap配置为false,默认为 true。
(1)
图例:
代码:
var power=10;
var totalPower=14;
var percent = (100*power/totalPower).toFixed(2);
option = {
title: {
text: power+"KW",
x: "center",
top: '40%',
textStyle:{
color:'#fff',
fontSize:48
}
},
tooltip: {
formatter: "{a} <br/>{b} : {c}%"
},
series: [{
name: '',
type: 'gauge',
center: ['50%', '50%'], // 默认全局居中
radius: '70%',
axisLine: {
show: false,
lineStyle: { // 属性lineStyle控制线条样式
color: [
[0.8, '#FCC65B'],
[1, '#FEFFFE']
],
shadowColor: 'rgba(0, 0, 0, 0.3)',
shadowBlur: 20,
shadowOffsetX:-3,
shadowOffsetY:3,
width: 10
}
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
},
pointer: {
show: false,
length: '0',
width: '0'
},
detail: {
formatter: '{value}%',
offsetCenter: [0, '25%'],
textStyle:{
color:'#fff',
fontSize:18
}
},
data: [{
value: percent,
label: {
textStyle: {
fontSize: 12
}
}
}]
}]
};
(2)
图例:
代码:
function getData(param, maxNum) {
var y;
var arr = [];
arr = xData.map(function(x){
if(x<param){
y=maxNum;
}else{
y=-(x-param)*(x-param)+maxNum;
}
y = y<0?0:y;
return y.toFixed(2);
});
return arr;
}
function getAverageData(maxNum, total) {
var j = maxNum / total;
var sum=0;
var arr = [0];
for (var i = 0; i < total; i++) {
sum+=j;
arr.push(sum.toFixed(2));
}
return arr;
}
var xData = getAverageData(30, 300);
var legendData=['光伏板1','光伏板2','光伏板3'];
option = {
tooltip: {
trigger: 'axis'
},
legend: {
textStyle: {
fontFamily: "Arial",
fontSize: 14,
color: '#000000'
},
data: legendData
},
calculable: true,
xAxis: [{
type: 'category',
anme: '输出电压(V)',
nameLocation :'center',
axisLabel: {
formatter:function(value,index){
return parseInt(value)
},
interval:function(index,item){
if(item%5===0){
return true;
}else{
return false;
}
},
textStyle: {
fontFamily: "Arial",
fontSize: 12
}
},
data:xData
}],
yAxis: [{
fontFamily: "Arial",
type: 'value',
name: '输出电流(A)',
nameTextStyle: {
fontFamily: "Arial",
fontSize: 12
},
axisLabel: {
formatter: '{value}',
textStyle: {
fontFamily: "Arial",
fontSize: 14
}
}
}],
series: [{
itemStyle: {
normal: {
fontFamily: "Arial",
borderColor: "#5ab1ef",
color: "#5ab1ef",
lineStyle: {
type: 'solid'
}
}
},
type: 'line',
symbol: 'none',
symbolSize: 3,
smooth: true,
name: '光伏板1',
data: getData(14.6,33)
}, {
itemStyle: {
normal: {
fontFamily: "Arial",
borderColor: "#b6a2de",
color: "#b6a2de",
lineStyle: {
type: 'solid'
}
}
},
type: 'line',
symbol: 'none',
symbolSize: 3,
smooth: true,
name: '光伏板2',
data: getData(13.3,34)
}, {
itemStyle: {
normal: {
fontFamily: "Arial",
borderColor: "#f69b51",
color: "#f69b51",
lineStyle: {
type: 'solid'
}
}
},
type: 'line',
symbol: 'none',
smooth: true,
name: '光伏板3',
data: getData(10,35.5)
}]
};
(3)
图例:
代码:
function getData(param, add) {
var radBas = param === undefined ? 1 : param;
var addBas = param === undefined ? 0 : add;
var arr = [];
for (var i = 0; i < xData.length; i++) {
arr.push(addBas + radBas * Math.random().toFixed(2));
}
return arr;
}
var xData = ['电站A', '电站B', '电站C', '电站D', '电站E', '电站F'];
option = {
tooltip: {
trigger: 'axis'
},
legend: {
textStyle: {
fontFamily: "Arial",
fontSize: 14,
color: '#000000'
},
data: ['理论发电量', '计划发电量', '上网电量', '发电效率']
},
calculable: true,
grid: {
x: 36,
y: 40,
x2: 52,
y2: 40
},
xAxis: [{
axisLabel: {
textStyle: {
fontFamily: "Arial",
fontSize: 12
}
},
type: 'category',
data: xData
}],
yAxis: [{
max: 100,
type: 'value',
name: '万kWh',
nameTextStyle: {
fontFamily: "Arial",
fontSize: 12
},
axisLabel: {
formatter: '{value}',
textStyle: {
fontFamily: "Arial",
fontSize: 14
}
}
}, {
max: 100,
fontFamily: "Arial",
type: 'value',
name: '%',
nameTextStyle: {
fontFamily: "Arial",
fontSize: 12
},
axisLabel: {
formatter: '{value}',
textStyle: {
fontFamily: "Arial",
fontSize: 14
}
}
}],
series: [{
itemStyle: {
normal: {
barBorderRadius: 5,
borderColor: '#7cdbfe',
color: "#7cdbfe",
fontFamily: "Arial"
}
},
name: '发电效率',
type: 'bar',
barWidth: 30,
yAxisIndex: 1,
data: getData(10,60)
}, {
itemStyle: {
normal: {
fontFamily: "Arial",
borderColor: "#5ab1ef",
color: "#5ab1ef",
lineStyle: {
type: 'solid'
}
}
},
type: 'line',
symbol: 'emptyCircle',
symbolSize: 3,
smooth: true,
name: '理论发电量',
data: getData(20,60)
}, {
itemStyle: {
normal: {
fontFamily: "Arial",
borderColor: "#b6a2de",
color: "#b6a2de",
lineStyle: {
type: 'solid'
}
}
},
type: 'line',
symbol: 'emptyCircle',
symbolSize: 3,
smooth: true,
name: '计划发电量',
data: getData(10,80)
}, {
itemStyle: {
normal: {
fontFamily: "Arial",
borderColor: "#f69b51",
color: "#f69b51",
lineStyle: {
type: 'solid'
}
}
},
type: 'line',
symbol: 'emptyCircle',
symbolSize: 3,
smooth:true,
name: '上网电量',
data: getData(5,5)
}]
};
(4)
图例:
代码:
var data = [{
value: 750,
name: '并网电站'
}, {
value: 539,
name: '在建电站'
}, {
value: 300,
name: '未建电站'
}];
option = {
backgroundColor: '#fff',
title: {
text: ['100MW'],
subtext: '总装机容量',
itemGap:12,
top:'43%',
x: 'center',
y: 'center',
textStyle: {
color:['#4ab05a'],
fontWeight:700,
fontSize: 40
},
subtextStyle: {
fontWeight: 'normal',
fontSize: 22
}
},
tooltip: {
show: true,
trigger: 'item',
formatter: "{b}: {c}个 ({d}%)"
},
legend: {
orient: 'horizontal',
bottom: '0%',
data: ['<10w', '10w-50w', '50w-100w', '100w-500w', '>500w']
},
series: [{
type: 'pie',
radius: ['45%', '46%'],
silent:true,
itemStyle: {
normal: {
color: '#e3e3e3'
}
},
data: ['']
},{
type: 'pie',
radius: ['74%', '75%'],
silent:true,
itemStyle: {
normal: {
color: '#e3e3e3'
}
},
data: ['']
},{
type: 'pie',
selectedMode: 'single',
radius: ['50%', '70%'],
hoverAnimation:false,
color: ['#2ec8ca', '#5ab0ed', '#ffb880'],
label: {
normal: {
formatter: ' '
}
},
selectedOffset:2,
labelLine: {
normal: {
show: false
}
},
data: data
}]
};
(5)
图例:
代码:
var xData = ['电站A', '电站B', '电站C', '电站D', '电站E', '电站F'];
var dataName = ['等效利用小时数(h)', '等效发电率(%)'];
function getData(param, add) {
var radBas = param === undefined ? 1 : param;
var addBas = add === undefined ? 0 : add;
var arr = [];
for (var i = 0; i < xData.length; i++) {
arr.push(radBas + addBas * (Math.random()).toFixed(2));
}
return arr;
}
var yData = getData(45, 45);
var randomY = 0;
var yData1 = yData.map(function(x) {
randomY = 20 * (parseFloat(Math.random()).toFixed(2) - 0.5);
return x += randomY;
});
option = {
grid: {
x: 90,
x2: 100
},
tooltip: {
trigger: 'axis',
axisPointer:{
lineStyle:{
color:'#3398DB'
}
},
},
legend: {
textStyle: {
fontSize: 14,
color: '#000000'
},
data: dataName
},
xAxis: [{
axisLabel: {
textStyle: {
fontSize: 14
}
},
type: 'category',
data: xData
}],
yAxis: [{
type: 'value',
name: dataName[0],
nameTextStyle: {
fontSize: 12,
},
max: 100,
axisLabel: {
formatter: '{value}',
textStyle: {
fontSize: 14
}
},
axisTick: {
show: false
},
splitNumber: 5,
splitArea: {
show: true,
areaStyle: {
color: ['#F6F8F9', '#ECEEEF']
}
}
}, {
type: 'value',
name: dataName[1],
max: 100,
nameTextStyle: {
fontSize: 12
},
axisTick: {
show: false
},
axisLabel: {
textStyle: {
fontSize: 14
}
},
splitLine: {
show: false
},
splitNumber: 5
}],
series: [{
itemStyle: {
normal: {
borderWidth: 2,
barBorderRadius: 5,
borderColor: '#7cdbfe',
color: "#7cdbfe"
}
},
type: 'bar',
barWidth: 30,
name: dataName[1],
yAxisIndex: 1,
data: yData
}, {
itemStyle: {
normal: {
borderColor: "#f69b51",
color: "#f69b51",
lineStyle: {
type: 'solid'
}
}
},
symbol: 'emptyCircle',
symbolSize: 5,
smooth: true,
name: dataName[0],
type: 'line',
data: yData1
}]
};
(6)
图例:
代码:
var data = [{
value: 45,
name: '严重告警'
}, {
value: 20,
name: '重要告警'
}, {
value: 65,
name: '一般告警'
}];
option = {
backgroundColor: '#fff',
tooltip: {
show: true,
trigger: 'item',
formatter: "{b}: {c}个 ({d}%)"
},
legend: {
orient: 'horizontal',
bottom: '0%',
data: ['<10w', '10w-50w', '50w-100w', '100w-500w', '>500w']
},
series: [{
type: 'pie',
radius: ['15%', '22%'],
silent:true,
z:2,
label: {
normal: {
show: false,
}
},
itemStyle: {
normal: {
color: '#fff',
opacity:0.4
}
},
data: [' ']
},{
type: 'pie',
radius: ['77%', '78%'],
silent:true,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0, color: '#8fe5fa' // 0% 处的颜色
}, {
offset: 0.5, color: '#fff' // 100% 处的颜色
},{
offset: 1, color: '#8fe5fa' // 0% 处的颜色
}], false)
}
},
data: ['']
},{
type: 'pie',
roseType: "radius",
selectedMode: 'single',
radius: ['15%', '70%'],
color: ['#ffb980', '#fc5043', '#23b4ff'],
z:1,
label: {
normal: {
formatter: '{c}%',
position:'inner',
textStyle: {
fontSize:16
}
}
},
labelLine: {
normal: {
show: false
}
},
data: data
}]
};
(7)
图例:
代码:
var easingFuncs = {
quadraticInOut: function (k) {
if ((k *= 2) < 1) { return 2200 * k * k; }
return -2200 * (--k * (k - 2) - 1);
}
};
var N_POINT = 24;
var grids = [];
var xAxes = [];
var yAxes = [];
var series = [];
var titles = [];
var tooltip = [];
var count = 0;
echarts.util.each(easingFuncs, function (easingFunc, name) {
var data = [];
for (var i = 0; i <= N_POINT; i++) {
var x = i / N_POINT;
var y = easingFunc(x);
data.push([x, y]);
}
tooltip.push({
show:true,
trigger:'item'
});
grids.push({
show: true,
borderWidth: 0,
backgroundColor: '#fff',
shadowColor: 'rgba(0, 0, 0, 0.3)',
shadowBlur: 2
});
xAxes.push({
type: 'value',
show: true,
min: 0,
max:1.2,
gridIndex: count,
axisLabel:{
show:true,
formatter:function(value,index){
return index
}
},
splitLine:{
show:false
},
splitNumber:10
});
yAxes.push({
name:'元',
type: 'value',
show: true,
max:5000,
gridIndex: count,
splitLine:{
show:true,
lineStyle:{
type:'dashed'
}
},
splitNumber:5
});
series.push({
name: name,
type: 'line',
xAxisIndex: count,
yAxisIndex: count,
data: data,
showSymbol: false,
animationEasing: name,
animationDuration: 1000,
markLine:{
label:{show:true},
data: [{
yAxis: 3000
}],
lineStyle: {
normal: {
type: "dashed",
color: "#CE1C08"
}
}
}
});
titles.push({
textAlign: 'center',
text: name,
textStyle: {
fontSize: 12,
fontWeight: 'normal'
}
});
count++;
});
option = {
grid: grids,
xAxis: xAxes,
yAxis: yAxes,
series: series,
tooltip:tooltip
};
(8)
图例:
代码:
function getData(param){
var radBas = param === undefined?1:param;
console.log(radBas);
var arr=[];
for(var i=0;i<xData.length;i++){
arr.push(radBas*Math.random().toFixed(2));
}
console.log(arr);
return arr;
}
var xData=['电站A','电站B','电站C','电站D','电站E','电站F'];
option = {
grid:{
x: 56,
y: 40,
x2:20,
y2:40
},
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
axisLabel:{
textStyle:{
fontFamily: "Arial",
fontSize: 14
}
},
data:['0-5%','5-10%','10-20%','above 20%','Abnormal','Not Analyzed']
},
calculable : true,
xAxis : [
{
axisLabel:{
textStyle:{
fontFamily: "Arial",
fontSize: 12
}
},
type : 'category',
data : xData
}
],
yAxis : [
{
type : 'value',
max: 5,
name : '比例(%)',
nameTextStyle:{
fontFamily: "Arial",
fontSize: 12
}
}
],
series : [
{
itemStyle: {
normal: {
barBorderRadius: 5,
fontFamily:"Arial"
}
},
name:'0-5%',
type:'bar',
stack: '损耗时长',
barWidth:35,
data:getData()
},
{
itemStyle: {
normal: {
barBorderRadius: 5,
fontFamily:"Arial"
}
},
name:'5-10%',
type:'bar',
stack: '损耗时长',
barWidth:35,
data:getData()
},
{
itemStyle: {
normal: {
barBorderRadius: 5,
fontFamily:"Arial"
}
},
name:'10-20%',
type:'bar',
stack: '损耗时长',
barWidth:35,
data:getData()
},
{
itemStyle: {
normal: {
barBorderRadius: 5,
fontFamily:"Arial"
}
},
name:'above 20%',
type:'bar',
stack: '损耗时长',
barWidth:35,
data:getData()
},
{
itemStyle: {
normal: {
barBorderRadius: 5,
fontFamily:"Arial"
}
},
name:'Abnormal',
type:'bar',
stack: '损耗时长',
barWidth:35,
data:getData()
},
{
itemStyle: {
normal: {
barBorderRadius: 5,
fontFamily:"Arial"
}
},
name:'Not Analyzed',
type:'bar',
stack: '损耗时长',
barWidth:35,
data:getData()
}
]
};
(9)
图例:
代码:
var xData=[],yData=[];
var curDate = new Date();
var curDay = curDate.getDate(); //目前的日
// getDaysInOneMonth(2016,12,31);
function getDaysInOneMonth(year, month,curDay){ //数据 按月统计
month = parseInt(month, 10);
var d= new Date(year, month, 0); //当月有多少天
var days = d.getDate(); //当前月的最后一天
for(var i=1;i<=days;i++){
if(i<10){
xData.push('0'+i);
}else{
xData.push(i);
}
if(i<=curDay){
yData.push(parseFloat(Math.random()*10+30).toFixed(2));
}else{
yData.push(' ');
}
tooltipFormatter='{b}h<br>'+'{a0}:'+'{c}万kWh';
}
tooltipFormatter='{b}日<br>'+'{a}:'+'{c}万元';
}
getDays(24);
function getDays(param){ //数据 按周统计
num = parseInt(param, 10);
var week=['周一','周二','周三','周四','周五','周六','周日'];
if(num==7){
for(var i=0;i<num;i++){
xData.push(week[i]);
yData.push(parseFloat(Math.random()*10+30).toFixed(2));
}
tooltipFormatter='{b}<br>'+'{a}:'+'{c}万元';
}else if(num==24){
for(var i=1;i<num;i++){
xData.push(i);
yData.push(parseFloat(Math.random()*10+30).toFixed(2));
}
tooltipFormatter='{b}h<br>'+'{a}:'+'{c}万元';
}else{
}
}
function getCurDate(){ //获取当前日期
var formatDate = curDate.getFullYear()+'年'+(curDate.getMonth()+1)+'月'+curDate.getDate()+'日'
return formatDate;
}
option = {
title:{
text:getCurDate(),
left:'center'
},
tooltip : {
trigger: 'axis',
axisPointer:{
lineStyle:{
color:'#3398DB'
}
},
formatter:tooltipFormatter
},
toolbox: {
feature: {
saveAsImage: {}
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis : [
{
type : 'category',
boundaryGap : false,
data : xData
}
],
yAxis : [
{
max:50,
type : 'value',
name:'万元'
}
],
series : [
{
name:'收益',
type:'line',
stack: '总量',
label: {
normal: {
show: true,
position: 'top'
}
},
areaStyle: {normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0, color: '#ACDDFD' // 0% 处的颜色
}, {
offset: 1, color: '#F2FAFF' // 100% 处的颜色
}], false)
}},
lineStyle:{
normal:{
color: '#55B5F1'
}
},
itemStyle:{
normal:{
color: '#0D95ED'
}
},
data:yData
}
]
};
(10)
图例:
代码:
var base = +new Date(1968, 9, 3);
var oneDay = 24 * 3600 * 1000;
var date = [];
var data = [Math.random() * 300];
function PowerCalculator(base,power){
var number=base;
if(power == 1){
return number;
}
if(power == 0){
return 1;
}
for(var i=2;i<=power;i++){
number = number * base;
}
return number;
}
// for (var i = 1; i < 20000; i++) {
// var now = new Date(base += oneDay);
// date.push([now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'));
// data.push(Math.round((Math.random() - 0.5) * 20 + data[i - 1]));
// }
var datem=['00','15','30','45'];
var xData = getMinu();
function getYdata(param,bas){
var yData = [];
var getY;
for (var i = 0; i < xData.length; i++) {
if(i<24||i>80){
getY=0;
}else{
getY =bas+bas*Math.sin((i-param)/(3.14*3));
//getY = -((i-param)*(i-param)-param*15)*basic;
if(getY<0){getY =0}
if(Math.abs((i-54))<10){
getY+=bas*Math.random()/15;
}
getY=getY/10
}
yData.push(getY)
}
return yData
}
function getMinu(){
var dateh=[];
var datehs=[];
for(var i=0;i<24;i++){
if(i<10){
dateh='0'+i;
}else{
dateh=''+i;
}
for(var j=0;j<4;j++){
datehs.push(dateh+':'+datem[j]);
}
}
return datehs;
}
option = {
legend: {
top: 'top',
data:[{
name:'逆变器功率(直流输入)',
icon:'line'
},{
name:'逆变器功率(交流输出)',
icon:'line'
},{
name:'瞬时辐射',
icon:'line'
}]
},
xAxis: {
type: 'category',
boundaryGap: false,
data: xData
},
yAxis: [{
name:'功率(MW)',
max:5,
type: 'value',
boundaryGap: [0, '100%'],
},{
name:'瞬时辐射(W/m²)',
max:1000,
type: 'value',
boundaryGap: [0, '100%'],
}],
dataZoom: [{
type: 'inside',
start: 10,
end: 90
}, {
start: 10,
end: 90,
handleSize: '80%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
}],
series: [
{
name:'逆变器功率(直流输入)',
type:'line',
symbol: 'none',
itemStyle: {
normal: {
color: '#0299D9'
}
},
data: getYdata(38.7,13)
},
{
name:'逆变器功率(交流输出)',
type:'line',
symbol: 'none',
itemStyle: {
normal: {
color: '#36BC27'
}
},
data: getYdata(38.7,12)
},
{
name:'瞬时辐射',
type:'line',
smooth:false,
symbol: 'none',
yAxisIndex: 1,
itemStyle: {
normal: {
color: '#FB483A'
}
},
data: getYdata(39,2880)
}
]
};