做了这么多年软件开发,图表库是经常使用到的,也踩过不少坑,我自己用过的就有:

  1. mschart(微软出品,asp.net 和winform都可以使用,需要.net3.5以上)
  2. DevExpress控件(dev家的东西质量都不错,收费,用这个替代了nplot)
  3. flot控件(js开源库,轻量级,嵌入式设备网页用这个比较好)
  4. highchart(js库,最好用的商业库,效果什么的没话说)
  5. echarts(js库,百度维护的免费开源库,整体上没highcharts好,但是免费,功能也非常好强大,一般项目绝对够用,百度内部也是用这个)
  6. ChartDirector(跨语言的图表库,使用MFC时候用过)
  7. 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插件)相关推荐

  1. 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

    在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...

  2. 介绍一款开源的类Excel电子表格软件

     Excel一直以霸主的地位,占领了Windows桌面表格软件市场No 1,与此同一时候,Office套装产品差点儿成为了IT行业的标配办公技能.有无相似Excel的桌面程序,绿色版,实现主要的数 ...

  3. 查画图linux进程,分享|6 款面向 Linux 用户的开源绘图应用程序

    小时候,当我开始使用计算机(在 Windows XP 中)时,我最喜欢的应用程序是微软的"画图".我能在它上面涂鸦数个小时.出乎意料,孩子们仍然喜欢这个"画图" ...

  4. 【技术种草】介绍一款开源电商网站的购物车添加功能的实现

    目前电商领域有两款比较出名的开源电商网站解决方案,分别是基于 Angular 开发框架,代号为 Spartacus 的开源项目,以及基于 Vue 的 Vue Storefront. 作为 Sparta ...

  5. linux的内置的账户_6 款面向 Linux 用户的开源绘图应用程序

    既然你是一名 Linux 用户,为什么不关注一下开源绘图应用程序呢?-- Ankush Das(作者) 小时候,当我开始使用计算机(在 Windows XP 中)时,我最喜欢的应用程序是微软的&quo ...

  6. 介绍一款开源的自动驾驶仿真模拟器-Carla

    大家好,我是李慢慢. 不管你是一个自动驾驶的算法工程师,还是仿真工程师,不管你是业界大佬还是小白,我都建议你了解甚至使用一下这个软件. 目录: 0.前言 1.Carla简介 2.Carla的官方资源 ...

  7. 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)

     两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中 ...

  8. 《隆重介绍 思源黑体:一款Pan-CJK 开源字体》

    关于思源黑体 思源黑体是谷歌与 Adobe 联合开发,支持简体中文.繁体中文.日文.韩文以及英文:支持 ExtraLight.Light.Normal.Regular.Medium.Bold 和 He ...

  9. 6款开源中文OCR使用介绍(亲测效果)

    文章目录 前言 开源ocr项目 1. Paddle OCR(推荐指数:★★★★★) 1.1 简介 1.2 使用 1.3 优缺点 2. CnOCR(推荐指数:★★★★★) 2.1 简介 2.2 使用 2 ...

最新文章

  1. YOLOv5的妙用:学习手语,帮助听力障碍群体
  2. ITK:计算梯度各向异性扩散
  3. BZOJ 1602: [Usaco2008 Oct]牧场行走 倍增裸题
  4. linux服务器登录时慢出现卡顿
  5. 【Python包】安装teradatasql提示找不到pycryptodome模块错误(pycrypto,pycryptodome和crypto加密库)...
  6. 3dmax模型转换为*.FLT格式的建模要点
  7. 【Deep Learning 一】课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)答案
  8. Python中zip函数
  9. 《程序是怎样跑起来的》七
  10. docker java镜像_Docker容器引擎与架构
  11. 个人考研资料整理(更新一战后感想)
  12. 会议会展产业要善用信息技术提高活动运营管理效率
  13. 苹果Mac突然没有声音,3 种方法快速解决没声音的问题
  14. python给图片加边框,照片加边框,照片加描边,图片加描边,批量给图片加描边
  15. 线性与非线性规划:可行方向法
  16. 免费PDF批量转换图片工具
  17. 记一次修改阿里云DNS解析问题
  18. Vuze--Java路径配置
  19. mysql搜索结果去重_mysql数据库去重查询
  20. 考研资料分享——百度网盘获取

热门文章

  1. Java8实战学习笔记(四)——高效 Java 8 编程(一)
  2. Android RxJava+Retrofit+MVP 入门总结
  3. 应用统计学(第三版)张建同~学习笔记(大数据专业)
  4. 网页采集dz文章(文章采集网站源码)
  5. 7-8 字符串替换 (15 分)
  6. linux上安装scala教程
  7. You have 17unapplied migration(s). Your project may not work properly until you apply ...
  8. 连锁企业经营的8大成功密码
  9. 几种主流的数据仓库建模方法
  10. python 舍去小数_python小数的进位与舍去