百度echarts折线图

百度echarts折线图

ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。

支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)、雷达图(填充雷达图)、和弦图、力导向布局图、地图、仪表盘、漏斗图、事件河流图等12类图表,同时提供标题,详情气泡、图例、值域、数据区域、时间轴、工具箱等7个可交互组件,支持多图表、组件的联动和混搭展现。

下面介绍折线图示例。

标准折线图,标注、标线、个性化线条阴影,代码如下:

option = {

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

boundaryGap : false,

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

}

],

yAxis : [

{

type : 'value',

axisLabel : {

formatter: '{value} °C'

}

}

],

series : [

{

name:'最高气温',

type:'line',

data:[11, 11, 15, 13, 12, 13, 10],

markPoint : {

data : [

{type : 'max', name: '最大值'},

{type : 'min', name: '最小值'}

]

},

markLine : {

data : [

{type : 'average', name: '平均值'}

]

}

},

{

name:'最低气温',

type:'line',

data:[1, -2, 2, 5, 3, 2, 0],

markPoint : {

data : [

{name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}

]

},

markLine : {

data : [

{type : 'average', name : '平均值'}

]

}

}

]

};

堆积折线图,任意系统多维度堆积,代码如下:

option = {

tooltip : {

trigger: 'axis'

},

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

boundaryGap : false,

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

}

],

yAxis : [

{

type : 'value'

}

],

series : [

{

name:'邮件营销',

type:'line',

stack: '总量',

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

},

{

name:'联盟广告',

type:'line',

stack: '总量',

data:[220, 182, 191, 234, 290, 330, 310]

},

{

name:'视频广告',

type:'line',

stack: '总量',

data:[150, 232, 201, 154, 190, 330, 410]

},

{

name:'直接访问',

type:'line',

stack: '总量',

data:[320, 332, 301, 334, 390, 330, 320]

},

{

name:'搜索引擎',

type:'line',

stack: '总量',

data:[820, 932, 901, 934, 1290, 1330, 1320]

}

]

};

标准折线图,横纵坐标轴互换,平滑曲线,代码如下:

option = {

legend: {

data:['高度(km)与气温(°C)变化关系']

},

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,

tooltip : {

trigger: 'axis',

formatter: "Temperature :
{b}km : {c}°C"

},

xAxis : [

{

type : 'value',

axisLabel : {

formatter: '{value} °C'

}

}

],

yAxis : [

{

type : 'category',

axisLine : {onZero: false},

axisLabel : {

formatter: '{value} km'

},

boundaryGap : false,

data : ['0', '10', '20', '30', '40', '50', '60', '70', '80']

}

],

series : [

{

name:'高度(km)与气温(°C)变化关系',

type:'line',

smooth:true,

itemStyle: {

normal: {

lineStyle: {

shadowColor : 'rgba(0,0,0,0.4)'

}

}

},

data:[15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5]

}

]

};

标准面积图,填充样式,平滑曲线,代码如下:

option = {

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', 'stack', 'tiled']},

restore : {show: true},

saveAsImage : {show: true}

}

},

calculable : true,

xAxis : [

{

type : 'category',

boundaryGap : false,

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

}

],

yAxis : [

{

type : 'value'

}

],

series : [

{

name:'成交',

type:'line',

smooth:true,

itemStyle: {normal: {areaStyle: {type: 'default'}}},

data:[10, 12, 21, 54, 260, 830, 710]

},

{

name:'预购',

type:'line',

smooth:true,

itemStyle: {normal: {areaStyle: {type: 'default'}}},

data:[30, 182, 434, 791, 390, 30, 10]

},

{

name:'意向',

type:'line',

smooth:true,

itemStyle: {normal: {areaStyle: {type: 'default'}}},

data:[1320, 1132, 601, 234, 120, 90, 20]

}

]

};

堆积面积图,任意系统多维度堆积,代码如下:

option = {

tooltip : {

trigger: 'axis'

},

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

boundaryGap : false,

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

}

],

yAxis : [

{

type : 'value'

}

],

series : [

{

name:'邮件营销',

type:'line',

stack: '总量',

itemStyle: {normal: {areaStyle: {type: 'default'}}},

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

},

{

name:'联盟广告',

type:'line',

stack: '总量',

itemStyle: {normal: {areaStyle: {type: 'default'}}},

data:[220, 182, 191, 234, 290, 330, 310]

},

{

name:'视频广告',

type:'line',

stack: '总量',

itemStyle: {normal: {areaStyle: {type: 'default'}}},

data:[150, 232, 201, 154, 190, 330, 410]

},

{

name:'直接访问',

type:'line',

stack: '总量',

itemStyle: {normal: {areaStyle: {type: 'default'}}},

data:[320, 332, 301, 334, 390, 330, 320]

},

{

name:'搜索引擎',

type:'line',

stack: '总量',

itemStyle: {normal: {areaStyle: {type: 'default'}}},

data:[820, 932, 901, 934, 1290, 1330, 1320]

}

]

};

不等距折线图,时间坐标轴折线图,代码如下:

option = {

title : {

text : '时间坐标折线图',

subtext : 'dataZoom支持'

},

tooltip : {

trigger: 'item',

formatter : function (params) {

var date = new Date(params.value);

data = date.getFullYear() + '-'

+ (date.getMonth() + 1) + '-'

+ date.getDate() + ' '

+ date.getHours() + ':'

+ date.getMinutes();

return data + '
'

+ params.value + ', '

+ params.value;

}

},

toolbox: {

show : true,

feature : {

mark : {show: true},

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

restore : {show: true},

saveAsImage : {show: true}

}

},

dataZoom: {

show: true,

start : 70

},

legend : {

data : ['series1']

},

grid: {

y2: 80

},

xAxis : [

{

type : 'time',

splitNumber:10

}

],

yAxis : [

{

type : 'value'

}

],

series : [

{

name: 'series1',

type: 'line',

showAllSymbol: true,

symbolSize: function (value){

return Math.round(value/10) + 2;

},

data: (function () {

var d = [];

var len = 0;

var now = new Date();

var value;

while (len++ < 200) {

d.push([

new Date(2014, 9, 1, 0, len * 10000),

(Math.random()*30).toFixed(2) - 0,

(Math.random()*100).toFixed(2) - 0

]);

}

return d;

})()

}

]

};

接下来的几篇我们将介绍其他图形,如柱状图和饼图等。