highcharts的使用
步骤:
1. 去highcharts官网下载最新版本
2. 在.aspx页面添加引用
例:
<link href="../JS/highcharts/css/highslide.css" rel="stylesheet" type="text/css" />
<script src="../JS/highcharts/js/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="../JS/highcharts/js/highcharts.js" type="text/javascript" charset="GB2312"></script>
<script src="../JS/highcharts/js/theme/MyGray.js" type="text/javascript"></script><%--自己写的样式--%>
<script src="../JS/highcharts/js/exporting.js" type="text/javascript" charset="GB2312"></script><%--导出--%>
<script src="../JS/highcharts/js/highslide-full.min.js" type="text/javascript"></script>
<script src="../JS/highcharts/js/highslide.config.js" type="text/javascript"></script>
3. js文件中代码
/* 曲线图 */
var chart; //曲线图变量
function LoadData() {
var date = document.getElementById("txtDevDate").value;
chart = new Highcharts.Chart({
chart: {
renderTo: 'container', //放置图表的容器
// plotBackgroundColor: null,
// plotBorderWidth: null,
defaultSeriesType: 'line',
zoomType: 'xy' //****** 这句是实现局部放大的关键处 ******
},
title: { //设置标题
text: (function () {
var strHTML = "<span style=\"font-size:18px; font-weight: bolder;\">" + OperatorName + "</span>";
return strHTML;
})(),
style: {
color: 'black'
}
},
xAxis: {
type: 'datetime',
max: setDate(date + " 00:00:01") + * * ,
min: setDate(date + " 00:00:00"),
labels: {
// staggerLines: 3,
rotation: -, //字体倾斜
align: 'right',
x: ,
y:
},
lineColor: '#C0D0E0'
},
yAxis: (function () {
var data = [];
var color = ["#DDDF0D", "#7798BF", "#55BF3B"];
for (var i = ; i < dataDevIndexName.length; i++) {
var yaxis = "";
if (i > ) {
yaxis = { title: { text: "" }, lineWidth: , lineColor: color[i], opposite: true };
} else {
yaxis = { title: { text: "" }, lineWidth: , lineColor: color[i] };
}
data.push(yaxis);
}
return data;
})(),
//鼠标放在某个点上时的提示信息
//dateFormat,numberFormat是highCharts的工具类
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' +
'监测时间:' + Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
'监 测 值:' + this.y;
},
style: { //提示框字体样式
color: '#ffffff',
fontSize: '9px',
padding: '5px'
},
crosshairs: [{ //交叉点显示的两条纵线(如果只设置一个,只显示纵线)
width: ,
color: 'RED',
dashStyle: 'shortdot',
length: '10px'
}, {
width: ,
color: 'RED',
dashStyle: 'shortdot'
}]
},
//曲线的示例说明,像地图上得图标说明一样
legend: { //【图例】位置样式
layout: 'horizontal', //【图例】显示的样式:水平(horizontal)/垂直(vertical)
// backgroundColor: '#6B6B6B',
// borderColor: '#CCC',
borderWidth: ,
align: 'center',
verticalAlign: 'top',
enabled: true,
x: -,
y: ,
shadow: true,
// useHTML: true,
itemHoverStyle: {
color: '#921AFF'
},
itemStyle: {
color: '#6C6C6C'
}
},
//把曲线图导出成图片等格式
exporting: {
enabled: true
},
plotOptions: { //用来设置曲线的显示
line: {
marker: {
enabled: false
},
dataLabels: { //是否在曲线上显示数据
enabled: false
// color: 'red'
},
cursor: 'pointer',
enableMouseTracking: true, //是否显示title
// 允许线性图上的数据点进行点击
allowPointSelect: true,
// 当具体的数据点被点击时的事件响应函数。如果不需要事件响应,可以删除。
point: {
events: {
click: function (e) {
hs.htmlExpand(null, {
pageOrigin: {
x: this.pageX,
y: this.pageY
},
headingText: this.series.name,
// maincontentText: Highcharts.dateFormat('%A, %b %e, %Y', this.x) + '<br/> ',
maincontentText: (function () {
var date1Arr = nowDate.split('-');
var date2Arr = date.split('-');
var date1 = new Date(date1Arr[], date1Arr[], date1Arr[]);
var date2 = new Date(date2Arr[], date2Arr[], date2Arr[]);
if ((date1.getTime() - date2.getTime()) / / / < ) {
for (var i = ; i <= div_num; i++) {
var div = document.getElementById("divUpdate" + i);
if (div != null) {
div.innerHTML = "";
}
}
div_num++;
var strHTML = "<div id='divUpdate" + div_num + "'>";
strHTML += "<table>";
strHTML += "<tr><td>监测时间:</td><td>" + Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', e.point.x) + "</td></tr>";
strHTML += "<tr><td>原始监测值:</td><td>" + e.point.y + "</td></tr>";
strHTML += "<tr><td>新的监测值:</td><td><input type='text' id='newIndexValue' style='width:130px;' /></td></tr>";
strHTML += "<tr><td>备注:</td><td><textarea id='newIndexContent' style='width:180px; height:60px;' ></textarea></td></tr>";
strHTML += "<tr><td colspan='2' style='text-align:center;'><input type='button' value='保存' onclick='ActDataIns(" + e.point.id + ",2)' /></td></tr>";
strHTML += "</table></div>";
return strHTML;
} else {
return "超出一周不能修改!";
}
})(),
width:
});
}
}
},
animation: true, //当一个序列不显示时,是否显示动画
// 是否在图注中显示。
showInLegend: true,
// 调整图像顺序关系
zIndex:
}
}
});
}
/* 动态设置曲线图的series */
function setHighcharts() {
//addPlotLin 添加警戒线 即:一条横杠
if (document.getElementById("ckDim").checked == true) {
var res = PSCP.csLine.QueryDim(GetInt(dataDevIndexID[]));
var rt = res.value.ds.Tables[];
if (rt != null) {
if (rt.Rows.length > ) {
yaxis = { width: , color: 'red', value: GetInt(rt.Rows[].DIMENSIONMAX), id: 'plotline-1' };
}
} else {
alert("查询量纲出错:" + res.value.reason);
return;
}
chart.yAxis[].addPlotLine(yaxis);
}
// 设计思路:将series的name属性和data属性分开就行设置,最后合并
for (var i = ; i < dataDevIndexID.length; i++) {
var sdata = [];
var res = PSCP.csLine.QueryActData(GetInt(dataDevIndexID[i]), document.getElementById("txtDevDate").value);
var rt = res.value.ds.Tables[]; var onOffValue = -; //用于记录开关变量(前一条数据)的值 if (rt != null) {
if (rt.Rows.length > ) {
for (var j = ; j < rt.Rows.length; j++) {
var IsOnOff = GetInt(rt.Rows[j].DEVICECONFIGTYPE); //记录类型 0#指标类型,1#开关变量
if (IsOnOff == ) { //开关变量
if (j == ) {
onOffValue = GetInt(rt.Rows[j].INDEXVALUE); //第一条数据值赋给onOffValue
} else {
if (onOffValue != rt.Rows[j].INDEXVALUE) {
sdata.push({
x: rt.Rows[j].DT_MONITOR,
y: onOffValue,
id: rt.Rows[j].ACTUALDATAID
});
onOffValue = rt.Rows[j].INDEXVALUE;
}
}
sdata.push({
x: rt.Rows[j].DT_MONITOR,
y: onOffValue,
id: rt.Rows[j].ACTUALDATAID
});
} else { //指标类型
sdata.push({
x: rt.Rows[j].DT_MONITOR,
y: rt.Rows[j].INDEXVALUE,
id: rt.Rows[j].ACTUALDATAID
});
}
}
var seriesdata = { name: dataDevIndexName[i], data: sdata, yAxis: i };
chart.addSeries(seriesdata);
} else {
alert(dataDevIndexName[i] + ": 未找到任何符合条件的数据!");
}
} else {
alert("查询实测表出错:" + res.value.reason);
return;
}
}
}
注意:
1. y轴的值必须是数字(这里使用的是parseFloat)
2. x轴的值必须是数字(从一个日期到1970年1月1日的毫秒数)
3. 在曲线图上添加横向时,值不能为null或者空,否则会报错
highcharts的使用的更多相关文章
- Highcharts中国地图热力图
最近有个项目需要将MC销量按大陆各省统计,并以中国地图人力图效果显示.由于项目一直使用Highcharts进行图表的统计,故采用Highmaps来实现. 效果如下: 1)中国各个省.直辖市.自治区: ...
- Highcharts入门小示例
一.创建条形图 1.创建div容器 <div id="container" style="min-width:800px;height:400px"> ...
- Highcharts配置
一.基础使用 <script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script> ...
- highcharts .net导出服务 和 两种导出方式
highcharts 的Net导出服务 GitHub上整理的https://github.com/imclem/Highcharts-export-module-asp.net 引用两个程序集 sh ...
- 《Learning Highcharts》中文翻译
在highcarts的官方网站上推荐了一本书,由于highchart在平时工作中会用到,所以我们尝试将其翻译成中文,仅作为学习highchart工具的一种方式,以方便日后查阅. 翻译图书作为学习笔记, ...
- highcharts饼状图使用案例
在公司由于需要对订单数据进行分析,故使用到了highcharts工具 <block name="Js"> <script type="text/java ...
- highcharts
preparation Highcharts Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone.IE和火狐等等: 对个人用 ...
- highcharts使用笔记
1.legend取消点击事件: 饼图:plotOptions.pie.point.events.legendItemClick = function() {return false;} 其他,如:pl ...
- FusionCharts和highcharts 饼图区别!
FusionCharts ---------------脚本--------------- <script src="../../../fashioncharts/js/FusionC ...
- .net 下新版highcharts本地导出图片bug处理
最近公司要用到highcharts这个插件来生成图表,所以我花了点时间研究了下. 现在最新的版本是3.0.2,这js插件居多优点就不比多说了,demo官网上也很详细.但是优点不爽的地方是,导出图片这个 ...
随机推荐
- new的原理
先来个构造函数的例子: function Prince(name,age){ this.name=name; this.age=age; } var prince=new Prince("c ...
- taglib的使用
使用自定义的taglib可以是我们对页面数据的处理放在后台,不仅使用方便,而且影藏了处理逻辑,也更加的安全. 需要使用到servlet.jar 1.在web-inf下建立taglib.tld文件 &l ...
- progit-zh(Git中文文档)
发现好像在墙外,还是下载下来看会快点 链接: http://pan.baidu.com/s/1o8EiDMq 密码: vzf9
- js函数知识点
1.即使写成functon a()也是可以调用外面定义的变量的,写(a,b),我估计是为了降低耦合性 2.即使写成function a()也是可以用arguments[a]来默认写了(a,b) 3.在 ...
- Codeforces Round #279 (Div. 2)f
树形最大上升子序列 这里面的上生子序列logn的地方能当模板使 good #include<iostream> #include<string.h> #include< ...
- tomcat启动报错总结
错误一 webapps\ROOT does not exist or is not a readable directory 错误原因:在tomcat的server.xml的context中配置了不存 ...
- JSONP的原理
JSONP的原理 JSONP的最基本的原理是:动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的. <script type="text/j ...
- C# 过滤SerialPort端口
C#中的SerialPort类只能通过SerialPort.GetPortNames()来获取端口名字,而且出来都是COM+数字的字样,如果我要识别COM端口是什么设备的,它就无能为力了,此时我们可以 ...
- 《图解CSS3》——笔记(二)
作者:大漠 勘误:http://www.w3cplus.com/book-comment.html 2014年7月15日15:58:11 第二章 CSS3选择器 2.1 认识CSS选择器 2.1. ...
- jquery实现弹出即消失的提示层
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...