function mk(stock,code,name,lang,_title,_serious){ var opt_url; if(stock === "hk"){ opt_url = "http://data.gtimg.cn/flashdata/hk/monthly/"; }else{ opt_url = "http://data.gtimg.cn/flashdata/hushen/monthly/"; }; $.ajax({ type: "get", url: opt_url + stock + code + ".js?maxage=43201", datatype:"script", success:function(){ var data_mk = format_mk(monthly_data); var data0_mk = splitdata(data_mk); var option = opt_mk(name,data0_mk,lang,_title,_serious); // 2. 创建echarts实例 var mychart = echarts.init(document.getelementbyid('main')); // 3. 作用 mychart.setoption(option); } }); }; // 数组格式化 function format_mk(data){ //去除分隔符 var res = json.stringify(data).split("\\n"); //提取有效数据 if(res[0] == '"'){ res = res.splice(1) }else{ res = res.splice(0) }; if(res[res.length - 1] =='"'){ res = res.splice(0,res.length - 1) } //调整数组格式 中文=>[日期, 开盘(open),收盘(close),最高(highest),最低(lowest)] var _data = []; $.each(res,function(i,n){ var arr = n.split(" "); if(arr.length > 5){ arr = arr.splice(0,5) }; // 日期格式化 if(arr[0][0] == '9'){ var date = "19" + arr[0]; }else{ var date = "20" + arr[0]; }; date = date.slice(0,4) + "/" + date.slice(4,6) + "/" + date.slice(6,8); arr.splice(0,1,date) $.each(arr,function(index,item){ if(index > 0){ var _item = number(item); arr.splice(index,1,_item) } }); // 英文数组格式 [open,close,lowest,highest] // if(lang === "en"){ // if(arr[3] > arr[4]){ // var min = arr[4] // var max = arr[3] // arr.splice(3,1,min) // arr.splice(4,1,max) // } // } _data.push(arr) }); return _data } // 提示框中文格式回调封装 function tooltip_mk(lang,param,name){ var html = ""; if(lang == "cn"){ var til_op = '开盘值:' var til_cl = '收盘值:' var til_hi = '最高值:' var til_low = '最低值:' }else{ var til_op = 'open:' var til_cl = 'close:' var til_hi = 'highest:' var til_low = 'lowest:' } if(param[0].componentsubtype == "candlestick"){ html += '
' + name + '
' + '
' + param[0].name + '
' + '
' + '' + param[0].seriesname + ":" + '
' + '' + til_op + todecimal(param[0].value[1]) + '
' + '' + til_cl + todecimal(param[0].value[2]) + '
' + '' + til_hi + todecimal(param[0].value[3]) + '
' + '' + til_low + todecimal(param[0].value[4]) + '
' } return html; } // echarts配置 function opt_mk(name,data,lang,_title,_serious){ // 提示框参数配置 var settooltip = { trigger: 'axis', axispointer: { type: 'cross' }, formatter:function(param){ return tooltip_mk(lang,param,name) } }; // if(lang == "cn"){ // settooltip.formatter = function(){ // } // }; // 1. 柱状图样式定义 var upcolor = '#ec0000'; var upbordercolor = '#8a0000'; var downcolor = '#00da3c'; var downbordercolor = '#008f28'; return { title: { text: _title, left: 0 }, tooltip: settooltip, // legend: { // data: _legend // }, grid: { left: '10%', right: '10%', bottom: '15%' }, xaxis: { type: 'category', data: data.categorydata, scale: true, boundarygap : false, axisline: {onzero: false}, splitline: {show: false}, splitnumber: 20, min: 'datamin', max: 'datamax' }, yaxis: { scale: true, splitarea: { show: true }, axispointer: { label:{ formatter:function(params){ return todecimal(params.value) } } }, axislabel:{ formatter:function(value,index){ return todecimal(value) } } }, datazoom: [ { type: 'inside', start: 50, end: 100 }, { show: true, type: 'slider', y: '90%', start: 50, end: 100 } ], series: [ { name: _serious, type: 'candlestick', data: data.values, itemstyle: { normal: { color: upcolor, color0: downcolor, bordercolor: upbordercolor, bordercolor0: downbordercolor } }, markpoint: { label: { normal: { formatter: function (param) { return param != null ? math.round(param.value) : ''; } } }, data: [ { name: 'xx标点', coord: ['2019/5/31', 2300], value: 2300, itemstyle: { normal: {color: 'rgb(41,60,85)'} } }, { name: 'highest value', type: 'max', valuedim: 'highest' }, { name: 'lowest value', type: 'min', valuedim: 'lowest' }, { name: 'average value on close', type: 'average', valuedim: 'close' } ], tooltip: { formatter: function (param) { return param.name + '
' + (param.data.coord || ''); } } }, markline: { symbol: ['none', 'none'], data: [ [ { name: 'from lowest to highest', type: 'min', valuedim: 'lowest', symbol: 'circle', symbolsize: 10, label: { normal: {show: false}, emphasis: {show: false} } }, { type: 'max', valuedim: 'highest', symbol: 'circle', symbolsize: 10, label: { normal: {show: false}, emphasis: {show: false} } } ], { name: 'min line on close', type: 'min', valuedim: 'close', label:{ formatter:function(param){ return todecimal(param.value) } } }, { name: 'max line on close', type: 'max', valuedim: 'close', label:{ formatter:function(param){ return todecimal(param.value) } } } ] } }, // { // name: _legend[1], // type: 'line', // data: calculatema(data,5), // smooth: true, // linestyle: { // normal: {opacity: 0.5}, // } // }, // { // name: _legend[2], // type: 'line', // data: calculatema(data,10), // smooth: true, // linestyle: { // normal: {opacity: 0.5} // } // }, // { // name: _legend[3], // type: 'line', // data: calculatema(data,20), // smooth: true, // linestyle: { // normal: {opacity: 0.5} // } // }, // { // name: _legend[4], // type: 'line', // data: calculatema(data,30), // smooth: true, // linestyle: { // normal: {opacity: 0.5} // } // }, ] }; }