flot介绍与使用(一款开源绘图js插件)
做了这么多年软件开发,图表库是经常使用到的,也踩过不少坑,我自己用过的就有:
- mschart(微软出品,asp.net 和winform都可以使用,需要.net3.5以上)
- DevExpress控件(dev家的东西质量都不错,收费,用这个替代了nplot)
- flot控件(js开源库,轻量级,嵌入式设备网页用这个比较好)
- highchart(js库,最好用的商业库,效果什么的没话说)
- echarts(js库,百度维护的免费开源库,整体上没highcharts好,但是免费,功能也非常好强大,一般项目绝对够用,百度内部也是用这个)
- ChartDirector(跨语言的图表库,使用MFC时候用过)
- nplot(.net图表库,.net2.0就可以使用,当时用这个主要是因为.net版本问题)
前2个是服务端生成图片,这种库适合大数据显示,因为js库一般最多显示20万条记录,再多的话要么浏览器卡,要么像IE那样直接报内存过高,这种库依赖于后台语言,类似的还有directchart,jchart(java)等
后面2个其实是我下个项目用的,下个项目是基于java struts2的,不过js图表库是和后台语言无关的
前面2种都是在后台生成图片然后发送到客户端显示,当然DevExpress虽然是生成图片,但是还是支持鼠标事件的,关于它的介绍,我会另外写篇文章,这里主要介绍flot控件。
flot控件是基于jquery的一款js插件,绘图利用了html5标签Canvas;虽然IE8及其以下版本不支持Canvas,但是flot利用javascript进行了模拟,使得在IE6也能够支持,当然性能上或多或少会有影响,具体影响等我测试过后再发过来。
一、flot使用方式
flot和一般js插件使用方式一样,只需要引用几个js文件(包括jquery),然后放置一个div容器就可以了,官网上给的关键代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Flot Examples</title><link href="layout.css" rel="stylesheet" type="text/css"><!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]--><script language="javascript" type="text/javascript" src="../jquery.js"></script><script language="javascript" type="text/javascript" src="../jquery.flot.js"></script></head><body><div id="placeholder" style="width:600px;height:300px;"></div>
<script type="text/javascript">
$(function () {var d1 = [[0, 3], [4, 8], [8, 5], [9, 13]];$.plot($("#placeholder"), [ d1 ]);
});
</script></body>
</html>
从代码可以看出来,主要引用了2个js文件 并使用了一个div标签,使用是非常简单的。
二、flot与后台交互
flot的调用非常简单,个人感觉和matlab的绘图调用比较像,都是通过一个类似二维矩阵提供数据源,当然flot使用的是json对象数据,毕竟这个比较通用,与后台交互的时候,要注意几个地方:
1.后台生成的数据必定是一个字符串,该字符串必须符合json格式,比如:
string data="[[0, 3], [4, 8], [8, 5], [9, 13]]";
前台通过ajax接收到这个字符串后,是不能直接传递给plot函数的,必须转化成js的json对象,比如:
function ajaxCallback(data){var jsonData=eval('('+data+')');$.plot($("#placeholder"), [ jsonData ]);
}
这样才能正确显示
2.X轴为时间轴时候的显示与交互
利用flot绘制基于时间的曲线时候,要注意时间的转化,从官方给出的demo中可以看出,flot是利用js的时间戳来将时间转化为整型数序列的。
此文章放弃编辑,建议 直接使用百度的Echarts,功能强大,文档全面。
flot介绍与使用(一款开源绘图js插件)相关推荐
- 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...
- 介绍一款开源的类Excel电子表格软件
Excel一直以霸主的地位,占领了Windows桌面表格软件市场No 1,与此同一时候,Office套装产品差点儿成为了IT行业的标配办公技能.有无相似Excel的桌面程序,绿色版,实现主要的数 ...
- 查画图linux进程,分享|6 款面向 Linux 用户的开源绘图应用程序
小时候,当我开始使用计算机(在 Windows XP 中)时,我最喜欢的应用程序是微软的"画图".我能在它上面涂鸦数个小时.出乎意料,孩子们仍然喜欢这个"画图" ...
- 【技术种草】介绍一款开源电商网站的购物车添加功能的实现
目前电商领域有两款比较出名的开源电商网站解决方案,分别是基于 Angular 开发框架,代号为 Spartacus 的开源项目,以及基于 Vue 的 Vue Storefront. 作为 Sparta ...
- linux的内置的账户_6 款面向 Linux 用户的开源绘图应用程序
既然你是一名 Linux 用户,为什么不关注一下开源绘图应用程序呢?-- Ankush Das(作者) 小时候,当我开始使用计算机(在 Windows XP 中)时,我最喜欢的应用程序是微软的&quo ...
- 介绍一款开源的自动驾驶仿真模拟器-Carla
大家好,我是李慢慢. 不管你是一个自动驾驶的算法工程师,还是仿真工程师,不管你是业界大佬还是小白,我都建议你了解甚至使用一下这个软件. 目录: 0.前言 1.Carla简介 2.Carla的官方资源 ...
- 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)
两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中 ...
- 《隆重介绍 思源黑体:一款Pan-CJK 开源字体》
关于思源黑体 思源黑体是谷歌与 Adobe 联合开发,支持简体中文.繁体中文.日文.韩文以及英文:支持 ExtraLight.Light.Normal.Regular.Medium.Bold 和 He ...
- 6款开源中文OCR使用介绍(亲测效果)
文章目录 前言 开源ocr项目 1. Paddle OCR(推荐指数:★★★★★) 1.1 简介 1.2 使用 1.3 优缺点 2. CnOCR(推荐指数:★★★★★) 2.1 简介 2.2 使用 2 ...
最新文章
- YOLOv5的妙用:学习手语,帮助听力障碍群体
- ITK:计算梯度各向异性扩散
- BZOJ 1602: [Usaco2008 Oct]牧场行走 倍增裸题
- linux服务器登录时慢出现卡顿
- 【Python包】安装teradatasql提示找不到pycryptodome模块错误(pycrypto,pycryptodome和crypto加密库)...
- 3dmax模型转换为*.FLT格式的建模要点
- 【Deep Learning 一】课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)答案
- Python中zip函数
- 《程序是怎样跑起来的》七
- docker java镜像_Docker容器引擎与架构
- 个人考研资料整理(更新一战后感想)
- 会议会展产业要善用信息技术提高活动运营管理效率
- 苹果Mac突然没有声音,3 种方法快速解决没声音的问题
- python给图片加边框,照片加边框,照片加描边,图片加描边,批量给图片加描边
- 线性与非线性规划:可行方向法
- 免费PDF批量转换图片工具
- 记一次修改阿里云DNS解析问题
- Vuze--Java路径配置
- mysql搜索结果去重_mysql数据库去重查询
- 考研资料分享——百度网盘获取
热门文章
- Java8实战学习笔记(四)——高效 Java 8 编程(一)
- Android RxJava+Retrofit+MVP 入门总结
- 应用统计学(第三版)张建同~学习笔记(大数据专业)
- 网页采集dz文章(文章采集网站源码)
- 7-8 字符串替换 (15 分)
- linux上安装scala教程
- You have 17unapplied migration(s). Your project may not work properly until you apply ...
- 连锁企业经营的8大成功密码
- 几种主流的数据仓库建模方法
- python 舍去小数_python小数的进位与舍去