普通散点图:
注意x轴y轴的类型都是value。且在设置tooltip时也要注意写法:
option = { title : { text: '男性女性身高体重分布', subtext: '抽样调查来自: Heinz 2003' }, tooltip : { trigger: 'axis', showDelay : 0, axisPointer:{ //坐标轴指示器,坐标轴触发有效,默认type为line,可选为:'line' | 'cross' | 'shadow' | type : 'cross', lineStyle: { type : 'dashed', width : 1 } }, formatter : function (value) { if (value[2].length > 1) { return value[0] + ' :<br/>' + value[2][0] + 'cm ' + value[2][1] + 'kg '; } else { return value[0] + ' :<br/>' + value[1] + ' : ' + value[2] + 'kg '; } } }, 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 ,//整数精度,默认为100,个位和百位为0 precision: 2, //小数精度 scale:true, //脱离0值比例,放大聚焦到最终_min,_max区间 axisLabel : { formatter: '{value} cm' } } ], yAxis : [ { type : 'value', power: 1, precision: 2, scale:true, axisLabel : { formatter: '{value} kg' } } ], series : [ { name:'女性', type:'scatter', data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0],[163.8, 67.3] //详细见例子 ], markPoint : { data : [ {type : 'max', name: '最大值'}, {type : 'min', name: '最小值'} ] }, markLine : { data : [ {type : 'average', name: '平均值'} ] } }, { name:'男性', type:'scatter', data: [[174.0, 65.6], [175.3, 71.8], [193.5, 80.7], [186.5, 72.6], [187.2, 78.8] //详细见例子 ], markPoint : { data : [ {type : 'max', name: '最大值'}, {type : 'min', name: '最小值'} ] }, markLine : { data : [ {type : 'average', name: '平均值'} ] } } ] };
标准气泡图,注意在series中需要加symbolisize:
{number | Function} symbolSize | 2 | 4 | 折线图 (2),散点图(4) | 标志图形大小,可计算特性启用情况建议增大以提高交互体验。实现气泡图时symbolSize需为Function,气泡大小取决于该方法返回值,传入参数为当前数据项(value数组) |
function random(){ var r = Math.round(Math.random() * 100); //随机生成了半径 return (r * (r % 2 == 0 ? 1 : -1)); } function randomDataArray() { var d = []; var len = 100; while (len--) { d.push([ random(), random(), Math.abs(random()), ]); } return d; } option = { tooltip : { trigger: 'axis', showDelay : 0, axisPointer:{ type : 'cross', lineStyle: { type : 'dashed', width : 1 } } }, legend: { data:['scatter1','scatter2'] }, 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, splitNumber: 4, //分割段数,默认为5 scale: true } ], yAxis : [ { type : 'value', power: 1, splitNumber: 4, scale: true } ], series : [ { name:'scatter1', type:'scatter', symbolSize: function (value){ return Math.round(value[2] / 5); //标志图形大小,可计算特性启用情况建议增大以提高交互体验。实现气泡图时symbolSize需为Function,气泡大小取决于该方法返回值,传入参数为当前数据项(value数组) }, data: randomDataArray() }, { name:'scatter2', type:'scatter', symbolSize: function (value){ return Math.round(value[2] / 5); }, data: randomDataArray() } ] };
类目坐标散点图:增加了一个datazoom和一个datarange,
把x轴变为了类目,y轴变为了值属性
option = { title : { text : '类目坐标散点图', subtext : 'dataZoom支持' }, tooltip : { trigger: 'item', formatter : function (value) { return value[0] + ' (' + '类目' + value[2][0] + ')<br/>' + value[2][1] + ', ' + value[2][2]; } }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, restore : {show: true}, saveAsImage : {show: true} } }, dataZoom: { //数据区域缩放 show: true, start : 30, end : 70 }, legend : { data : ['series1', 'series2'] }, dataRange: { //值域选择,每个图表最多仅有一个值域控件 min: 0, max: 100, orient: 'horizontal', //布局方式,默认为垂直布局,可选为:'horizontal' | 'vertical' y: 30, x: 'center', //text:['高','低'], // 文本,默认为数值文本 color:['lightgreen','orange'], splitNumber: 5 }, xAxis : [ { type : 'category', axisLabel: { formatter : function(v) { return '类目' + v } }, data : function (){ var list = []; var len = 0; while (len++ < 500) { list.push(len); } return list; }() } ], yAxis : [ { type : 'value' } ], animation: false, series : [ { name:'series1', type:'scatter', symbolSize: function (value){ return Math.round(value[2]/10); }, data: (function () { var d = []; var len = 0; var value; while (len++ < 500) { d.push([ len, (Math.random()*30).toFixed(2) - 0, (Math.random()*100).toFixed(2) - 0 ]); } return d; })() }, { name:'series2', type:'scatter', symbolSize: function (value){ return Math.round(value[2]/10); }, data: (function () { var d = []; var len = 0; var value; while (len++ < 500) { d.push([ len, (Math.random()*30).toFixed(2) - 0, (Math.random()*100).toFixed(2) - 0 ]); } return d; })() } ] };