图表插件dygraphs.js插件使用

本文旨在记录自己的使用过程

dygraphs其实和echarts差不多,个人觉得前者的自我定制功能很强且不是基于canvas所以性能较echarts会好很多。下面开始:

1、准备一个div

  <div id="container_dy" style="width:600px; height:300px;"></div>

2、数据准备及数据格式要求

  dygraphs官网对数据格式给出了五种说明(http://dygraphs.com/data.html)

  

开发过程中我们使用到的csv data格式,其他格式请查官网详细介绍。

使用ajax请求,请求后台处理好的数据

var data =
"2011-01-01," + Math.random()*100 + "\n" +
"2011-01-02," + Math.random()*100 + "\n" +
"2011-01-03," + Math.random()*100 + "\n" +
"2011-01-04," + Math.random()*100 + "\n" +
"2011-01-05," + Math.random()*100 + "\n" +
"2011-01-06," + Math.random()*100 + "\n" +
"2011-01-07," + Math.random()*100 + "\n" +
"2011-01-08," + Math.random()*100 + "\n" +
"2011-01-09," + Math.random()*100 + "\n" +
"2011-01-10," + Math.random()*100 + "\n" +
"2011-01-11," + Math.random()*100 + "\n" +
"2011-01-12," + Math.random()*100 + "\n" +
"2011-01-13," + Math.random()*100 + "\n" +
"2011-01-14," + Math.random()*100 + "\n" +
"2011-01-15," + Math.random()*100 + "\n" +
"2011-01-16," + Math.random()*100 + "\n" +
"2011-01-17," + Math.random()*100 + "\n" +
"2011-01-18," + Math.random()*100 + "\n" +
"2011-01-19," + Math.random()*100 + "\n" +
"2011-01-20," + Math.random()*100 + "\n" +
"2011-01-21," + Math.random()*100 + "\n" +
"2011-01-22," + Math.random()*100 + "\n" +
"2011-01-23," + Math.random()*100 + "\n" +
"2011-01-24," + Math.random()*100 + "\n" +
"2011-01-25," + Math.random()*100 + "\n" +
"2011-01-26," + Math.random()*100 + "\n" +
"2011-01-27," + Math.random()*100 + "\n" +
"2011-01-28," + Math.random()*100 + "\n" +
"2011-01-29," + Math.random()*100 + "\n" +
"2011-01-30," + Math.random()*100 + "\n" +
"2011-01-31," + Math.random()*100 + "\n";

上面格式就是csv格式。

3、画图

核心方法

var g = new Dygraph(div,
                data,
                {
                  option1: value1,
                  option2: value2,
                  ...
                });div : 页面定义好的图形容器,document.getElementById("id");data: 后台处理好的返回到前台的数据,如上csv格式;{}里面填写插件为这个图准备的一些属性,如:legend等,官网给了好多,选择自己要使用的即可。详情参考http://dygraphs.com/options.html

这里使用的属性如下:

var g =

new Dygraph(
document.getElementById("div_g"),
data,
{
legend: "always",
//title:"line name",//图表的名字
titleHeight : 25,//定义图表名字文字的高度
labels: [‘Date‘,‘Value‘],//指定x轴和y轴的含义
highlightCircleSize : 5,//指定鼠标放到具体的顶点时,顶点的动态表现形式
strokeWidth : 2,//定义线条的粗细
maxNumberWidth : 30,//指定数字最大宽度
// colors : echartLineColor,//多条曲线时为数组,每条线的颜色
connectSeparatedPoints : true,//如果两点不是连续的此属性为true时,会强制连接两点
includeZero : true,//y轴是否显示0点
highlightSeriesOpts :
{
strokeWidth : 2,
strokeBorderWidth : 1,
highlightCircleSize : 5
},
legendFormatter : function(data)
{
var returnString = "";
var dataList = data.series;
var dateString = "";
for (var index = 0; index < dataList.length; index++)
{
var dataObj = dataList[index];
if (dataObj.isHighlighted)
{
if (window.event)
{
var width = parseFloat("600px");
var height = parseFloat("300px");
$("#div_g .dygraph-legend").css({
"position": "absolute",
"background":"#c3c7cc",
"opacity":"0.5",
"color":"red",
"top":window.event.offsetY > height ? (window.event.offsetY + "px")
: (window.event.offsetY + 20 + "px"),

"left":window.event.offsetX > width/2 ? (window.event.offsetX + "px")
: (window.event.offsetX + "px")});

dateString = data.xHTML;

returnString = ‘<span>date:‘
+ dateString
+ ‘<br />value:‘ + dataObj.yHTML
+ ‘</span>‘;
}
break;
}
}

return returnString;
},

//设置两轴数据显示格式和字体大小等

// axes :
// {
// x :
// { // 显示时分秒
// axisLabelFormatter : function(param)
// {
// var xx = param;
// return param.Format("yyyy-MM-dd HH:mm:ss");
// },
// axisLabelWidth : 70,
// axisLabelFontSize : 10
// },
// y :
// {
// axisLabelWidth : 80,
// axisLabelFontSize : 11
// }
// }

最终显示效果:

以上只是自己在项目中使用的功能,还有更多的功能需要去研究。



原文地址:https://www.cnblogs.com/doubleTing/p/dygraphs.html

时间: 2024-10-09 19:45:58

图表插件dygraphs.js插件使用的相关文章

Eclipse安装Propedit插件、SVN插件、js插件

1.在线安装Propedit 打开Eclipse的在线安装界面,点击Add Name: propedit Location:http://propedit.sourceforge.jp/eclipse/updates/ 2.在线安装Subclipse Name: subclipse 1.6.x Location:http://subclipse.tigris.org/update_1.6.x 安装完成即可使用. 3.安装包安装 下载spket-1.6.23,解开压缩包以后,把最里面的featur

专门做图表数据显示的js插件

http://echarts.baidu.com/index.html http://www.hcharts.cn/

jquery带三种切换效果的焦点图插件-luara.js插件

1.简介 luara.js 焦点图插件,用于设置焦点幻灯片的插件,实例中列出了三种最常用的效果,渐隐.上滑.左滑,可以设置切换的时间间隔. 2.插件调用代码段 <script> $(function(){ <!--调用Luara示例--> $(".example1").luara({ width:"500", height:"334", interval:5000, selected:"seleted"

13个JavaScript图表(JS图表)图形绘制插件【转】

现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容易就可以找到很多功能非常不错的图表库.个人而言,此类插件的上升,是因为: 1. Flash 过去是最佳解决方案,但很多人多在从那迁移: 2. 现代浏览器及其更强大的计算能力,使其在转化绘制实时数据方面的能力更佳: 3. 绘制矢量图的不同技术愈发成熟:VML.SVG 和 Canvas. 当然了,你需要

13个JavaScript图表(JS图表)图形绘制插件

现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容易就可以找到很多功能非常不错的图表库.个人而言,此类插件的上升,是因为: 1. Flash 过去是最佳解决方案,但很多人多在从那迁移: 2. 现代浏览器及其更强大的计算能力,使其在转化绘制实时数据方面的能力更佳: 3. 绘制矢量图的不同技术愈发成熟:VML.SVG 和 Canvas. 当然了,你需要

HTML5可互动的可视化图表js插件库

JointJS是一款可以进行互动的HTML5可视化图表js插件库.它可以用来创建静态图表,并且它拥有完全交互式绘图工具和应用程序生成器.jointjs可以很容易地创建各种各样的可视化工具. JointJS的事件驱动特性和MVC架构是它可以非常容易的集成到其它后台程序之中.JointJS的特点有: 支持多种图形元素(方形.圆形.椭圆形.文本.图像和路径) 支持多种知名的图表(ERD, Org chart, FSA, UML, PN, DEVS, ...) 支持基于SVG或编程的方式来定制图表 可以

一些前端用的JS插件

整理一些常用的JS库,其中大多数是jQuery相关插件,也有Bootstrap辅助插件及非jQuery插件.其功能涉及:页面布局.图片幻灯片播放.图片像册展示.功能辅助等内容.本篇只是简单介绍插件功能,以后使用到相关插件时再补充介绍插件使用方法的文章. jQuery Easing:jQuery 动画效果扩展 jQuery Migrate:jQuery 应用迁移辅助插件 Modernizr:专为HTML5和CSS3开发的功能检测类库 jQuery Flexslider:响应式 jQuery 内容滚

SPA学习之 - 路由插件(crossroads.js)

Crossroads.js是一个受Rails, Pyramid, Django, CakePHP等基于路由/分发(Route/Dispatch)方式处理路由的后端MVC框架启发的一套js专业路由库.它能够直接解析传入的字符串并根据相应的规则来过滤和验证路由,然后再执行下一步的操作. A duck can walk, fly and swim, but he can’t do any of these things well… crossroads.js是一个独立的库功能十分强大和灵活,而且职责单

jquery插件--ajaxfileupload.js上传文件原理分析

英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的. jQuery.extend({ createUploadIframe: function (id, uri) {//id为当前系统时间字符串,uri是外部传入的json对象的一个参数 //create frame var frameId = 'jUploadFrame' + id; //给iframe添加一个独一无二的id var iframeHtml = '<iframe id="' + f