1、ajax调用接口和处理数据

function getCityData()
{
var date1 = $('#datetimepicker1').val();
var date2 = $('#datetimepicker2').val(); var params = { 'date1': date1, 'date2': date2, 'city': '荣成'};
$.getJSON('http://127.0.0.1:8081/rcforeInterface/rest/services/getGuanSplineData', params, function (datas)
{
//删除历史数据
dataAQI.splice(0, dataAQI.length);
dataPM25.splice(0, dataPM25.length);
dataPM10.splice(0, dataPM10.length);
dataCO.splice(0, dataCO.length);
dataNO2.splice(0, dataNO2.length);
dataO3.splice(0, dataO3.length);
dataSO2.splice(0, dataSO2.length); dataHUM.splice(0, dataHUM.length);
dataTMP.splice(0, dataTMP.length);
dataPCPN.splice(0, dataPCPN.length);
dataWIND.splice(0, dataWIND.length); if(datas.length == 0) return; datas.forEach(function (item, index, dataRow)
{
time =item.datetime;
aqi = Number(item.aqi);
pm2_5 = Number(item.pm25);
pm10 = Number(item.pm10);
co = Number(item.co);
no2 = Number(item.no2);
o3 = Number(item.o3_8);
so2 = Number(item.so2); if (aqi == 0) aqi = null;
if (pm2_5 == 0) pm2_5 = null;
if (pm10 == 0) pm10 = null;
if (co == 0) co = null;
if (no2 == 0) no2 = null;
if (o3 == 0) o3 = null;
if (so2 == 0) so2 = null; dataAQI.push({ x: converTimeFormat(time).getTime(), y: aqi });
dataPM25.push({ x: converTimeFormat(time).getTime(), y: pm2_5 });
dataPM10.push({ x: converTimeFormat(time).getTime(), y: pm10 });
dataSO2.push({ x: converTimeFormat(time).getTime(), y: so2 });
dataNO2.push({ x: converTimeFormat(time).getTime(), y: no2 });
dataCO.push({ x: converTimeFormat(time).getTime(), y: co });
dataO3.push({ x: converTimeFormat(time).getTime(), y: o3 }); hum = Number(item.hum);
pcpn = Number(item.pcpn);
tmp =Number( item.tmp);
wind_spd = Number((Number(item.wind_spd)/3.6).toFixed(1)) ;
winddirection = item.wind_dir;
wdurl = getWindDirectionUrl(winddirection); if (hum == 0) hum = null;
if (wind_spd == 0) wind_spd = null; dataHUM.push({ x: converTimeFormat(time).getTime(), y: hum });
dataTMP.push({ x: converTimeFormat(time).getTime(), y: tmp });
dataPCPN.push({ x: converTimeFormat(time).getTime(), y: pcpn });
dataWIND.push({
x: converTimeFormat(time).getTime(), y: wind_spd,
marker: { symbol: wdurl },
winddirection: winddirection,
}); });
showChartByItems();
});
}

2、根据选择,加载不同的变量

function showChartByItems()
{
var dataArray1, unit1, labelStr1,dataArray2,unit2,labelStr2; switch (ITEM1)
{
case "AQI": dataArray1 = dataAQI; unit1 = ""; labelStr1 = "AQI"; break;
case "PM2.5": dataArray1 = dataPM25; unit1 = "ug/m<sup>3<sup/>"; labelStr1 = "PM2.5浓度"; break;
case "PM10": dataArray1 = dataPM10; unit1 = "ug/m<sup>3<sup/>"; labelStr1 = "PM10浓度"; break;
case "SO2": dataArray1 = dataSO2; unit1 = "ug/m<sup>3<sup/>"; labelStr1 = "SO2浓度"; break;
case "NO2": dataArray1 = dataNO2; unit1 = "ug/m<sup>3<sup/>"; labelStr1 = "NO2浓度"; break;
case "CO": dataArray1 = dataCO; unit1 = "mg/m<sup>3<sup/>"; labelStr1 = "CO浓度"; break;
case "O3": dataArray1 = dataO3; unit1 = "ug/m<sup>3<sup/>"; labelStr1 = "O3浓度"; break;
}
switch (ITEM2)
{
case "TMP": dataArray2 = dataTMP; unit2 = "℃"; labelStr2 = "温度"; break;
case "HUM": dataArray2 = dataHUM; unit2 = "%"; labelStr2 = "湿度"; break;
case "WIND": dataArray2 = dataWIND; unit2 = "m/s"; labelStr2 = "风速"; break;
case "PCPN": dataArray2 = dataPCPN; unit2 = "mm"; labelStr2 = "降水"; break;
}
showLineChartWith2('chart', dataArray1, unit1,labelStr1, dataArray2, unit2,labelStr2, "HOUR"); }

3、调用chart组件,进行展示

function showLineChartWith2(container, dataArray1, unit1, labelStr1, dataArray2, unit2, labelStr2, type, avg)
{ var dateTypeFormat;
var itemcolor1 = "#D26900";
var itemcolor2 = "#4F81BD";
if (type == "HOUR")
{
dateTypeFormat = '%Y-%m-%d %H:%M';
}
else if (type == "DAY")
{
dateTypeFormat = '%Y-%m-%d';
}
else if (type == "MONTH")
{
dateTypeFormat = '%Y-%m';
} markerShowFlag = true; $('#' + container).highcharts({
chart: {
type: 'spline',
zoomType: 'x',
spacingLeft: 0,
spacingRight: 0
},
title: {
text: '荣成市空气质量和气象关联分析',
style: {
color: '#000000',
fontSize: '18px',
fontFamily: '微软雅黑'
},
},
xAxis: {
type: 'datetime',
labels: { style: { fontSize: '14px' } },
dateTimeLabelFormats: {
millisecond: '%H:%M:%S.%L',
second: '%H:%M:%S',
minute: '%H:%M',
hour: '%H时',
day: '%m月%d日',
week: '%m-%d',
month: '%Y-%m',
year: '%Y'
}
},
yAxis: [{
title: {
text: labelStr1,
style: {
color: itemcolor1,
fontSize: '14px',
},
},
labels: {
format: '{value}'+ unit1,
style: {
color: itemcolor1,
fontSize: '14px',
}
},
min: 0
}, {
title: {
text: labelStr2,
style: {
color: itemcolor2,
fontSize: '14px',
},
},
labels: {
format: '{value}' + unit2,
style: {
color: itemcolor2,
fontSize: '14px',
},
},
opposite: true
}],
tooltip: {
shared: true,
useHTML: true,
formatter: function ()
{
var arr = [];
tip = '<span style="font-size:16px;color:black">' + Highcharts.dateFormat(dateTypeFormat, this.x) + '</span><br/><hr style="margin:3px 0;"/>'
+ "<table width='120px' style='font-size:16px'>";
tip = tip + "<tr><td style='color:" + this.points[0].series.color + "'>" + this.points[0].series.name + ": </td><td align='right'><b>" + this.points[0].y + "</b>" + unit1 + "</td></tr>";
tip = tip + "<tr><td style='color:" + this.points[1].series.color + "'>" + this.points[1].series.name + ": </td><td align='right'><b>" + this.points[1].y + "</b>" + unit2 + "</td></tr>";
if (this.points[1].point.winddirection != null)
{
tip = tip + "<tr><td style='color:#000000'>风向: </td><td align='right'><b>" + this.points[1].point.winddirection + "</b>" + "</td></tr>";
}
tip = tip + "</table>";
return tip;
}
},
plotOptions: {
series: {
marker: {
enabled: markerShowFlag,
radius: 3
},
enableMouseTracking: true,
turboThreshold: 0
}
},
legend: {
enabled: true
},
credits: {
enabled: false
},
exporting: {
buttons: {
contextButton: {
menuItems: [{
text: '导出图片',
onclick: function () {
this.exportChart();
}
}]
},
},
filename: '荣成市空气质量和气象关联分析',//导出的文件名
type: 'image/png',//导出的文件类型
sourceWidth: chartWidth,
sourceHeight: chartHeight,
scale: 1
},
series: [{
name: labelStr1,
data: dataArray1,
color: itemcolor1,
yAxis: 0
}, {
name: labelStr2,
data: dataArray2,
color: itemcolor2,
yAxis: 1
}]
});
var chartObj = $('#' + container).highcharts(); }

highchart应用示例1--2个不同类型变量2个y轴的更多相关文章

  1. 多Y轴示例

    //多Y轴示例 <template> <div id="main" :style="{width:'1000px',height:'500px' }&q ...

  2. highchart应用示例2-上:圆角柱状图,下:多指标曲线图

    1.ajax调用接口获取数据 function getCityData() { var date1 = $('#datetimepicker1').val(); var date2 = $('#dat ...

  3. 完整Highchart JS示例

    线性: $.ajax({ type:'post', url:appPages.urlListTjrll, cache:false, data:{year:year,month:month},// // ...

  4. highchart 设置双Y轴坐标 双x轴坐标方法

    我们的图表一旦引入了两种不同单位或者数量级相差很大的数据以后,这时候需要两种坐标对其进行计量. 下面以设置双Y轴为例, y轴坐标的参数设置成: yAxis: [{ title: { text: '坐标 ...

  5. [DevExpress]ChartControl之创建X,Y轴Title示例

    关键代码: /// <summary> /// 设置X轴Title /// </summary> /// <param name="chart"> ...

  6. MeteoInfoLab脚本示例:多Y轴图

    数据范围相差比较大的数据序列进行对比的时候多Y轴图就很重要了.MeteoInfoLab中提供了一个twinx函数来根据已有的坐标系(Axes)生成一个新的Axes,这个命令会使得已有的Axes不绘制右 ...

  7. Win10系列:VC++ Direct3D图形绘制1

    通过前面的介绍,相信读者已经了解了如何新建一个用于开发Direct3D应用程序的项目模版,以及这个项目模版中用于绘制立体图形的主要函数.在本小节中,将通过一个具体的示例来介绍如何使用Visual St ...

  8. PHP14 动态图像处理

    学习要点 如何使用PHP中的GD库 设计验证码类 PHP图片处理 设计图像图处理类 如何使用PHP中的GD库 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站 ...

  9. 使用 highchart 绘制柱状图的通用方法与接口

    本文给出使用 highchart 绘制柱状图的通用方法与接口, 只要指定相应的数据结构和配置, 就可以直接拿来使用. 一.  数据结构与基本接口   一般绘制图形, 会涉及到较复杂的数据结构, 比如使 ...

随机推荐

  1. (1.4)mysql sql mode 设置与使用

    关键词: mysql sql mode 1.查阅 mysql> mysql> show variables like 'sql_mode%';+---------------+------ ...

  2. laravel项目thinksns+安装pc前端页面

    前面我们说了laravel项目ThinkSNS+安装,现在要安装给用户看的页面,方便他们进行一些操作,比如发表文字/提问之类,这个已经模块化了,用composer就可以完成.命令行代码如下(之前是co ...

  3. 搭建nginx服务器,虚拟主机,反向代理

    1 搭建Nginx服务器 1.1 问题 在IP地址为192.168.10. 5的主机上安装部署Nginx服务,并可以将Nginx服务器升级到更高版本,要求编译时启用如下功能: SSL加密功能 查看服务 ...

  4. windows系统redmine安装总结

    今天在公司服务器上安装了redmine,主要用于项目管理和缺陷跟踪.安装过程比较简单,总结如下: 1.网上下载redmine安装包(bitnami-redmine-3.3.1-0-windows-in ...

  5. Mysql事务原理介绍

    事务 一个事务会涉及到大量的cpu计算和IO操作,这些操作被打包成一个执行单元,要么同时都完成,要么同时都不完成. 事务是一组原子性的sql命令或者说是一个独立的工作单元,如果数据库引擎能够成功的对数 ...

  6. warning: LF will be replaced by CRLF in 解决办法

    今天用Git bash遇到的问题,看了几个回答之后发现一个比较有价值的,给大家分享一下,其他很多的回答都有很或多或少存在一些弊端. 原回答地址在stackoverflow上,附上链接--http:// ...

  7. cordava打包vue项目成app

    注意:安装目录不要以中文命名 1.安装cordova :npm install -g cordova 2.安装java jdk :配置环境变量: 1.系统变量:名:JAVA_HOME    值:C:\ ...

  8. Stylus的使用

    vue-cli项目安装使用stylus步骤:1. npm install stylus -D命令,在项目内安装stylus.(注意:命令结尾 -D 即是 --save-dev 的简写形式) 2.需要安 ...

  9. finally最常用的情况

    通常用于关闭(释放)资源例如:数据库连接   执行查询时查到需要的需要后   需要关闭连接,   此处连接就需要在获取到结果后 就断开连接   不然访问人数过多,数据库有最大连接数,超过了就只能等待前 ...

  10. Python 类对象去重

    注:set 对类对象去重,在于重写__eq__方法和__hash__方法,如果没有重写__hash__会导致People类对象不是可hash的 #!/usr/bin/env python # -*- ...