成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

jQuery插件Flot的介紹

開發 前端
Flot采用Canvas繪制圖形(Web總共就有三種常見方式來繪制圖形,不了解的同學請看這篇文章),在數據量非常大的時候,你需要考慮瀏覽器端的性能問題。順便提一句,D3是采用SVG來繪制圖形的,從我自己的體會來說,對于拖動圖來說,SVG會比較流暢。

Flot介紹 

最近在項目里面要用到JavaScript來繪制圖表,JQuery的插件Flot是一個不錯的選擇。和我之前介紹過的D3不同,它的唯一目的就是用來繪制曲線圖的,即便是它的不同插件的功能,也基本上都在這個范疇之內。

Flot采用Canvas繪制圖形(Web總共就有三種常見方式來繪制圖形,不了解的同學請看這篇文章),在數據量非常大的時候,你需要考慮瀏覽器端的性能問題。順便提一句,D3是采用SVG來繪制圖形的,從我自己的體會來說,對于拖動圖來說,SVG會比較流暢。

首先介紹一下數據的格式。數據來自一個數組嵌套的JSON格式,如:

  1. [[0, 3], [4, 8], [8, 5], [9, 13]] 

這就給定了一個二維圖上供繪制連線的幾個點。

數據可以直接通過API傳給Flot,讓它自行決定數據展示的樣子:

  1. $(function () {  
  2.     var d1 = [];  
  3.     for (var i = 0; i < 14; i += 0.5)  
  4.         d1.push([i, Math.sin(i)]);  
  5.     var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];  
  6.     // a null signifies separate line segments  
  7.     var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];  
  8.        
  9.     $.plot($("#placeholder"), [ d1, d2, d3 ]);  
  10. }); 

這是官網上的例子,代碼很簡潔。從數據上看,其實是三層數組嵌套:

第一層是點坐標;

第二層是同一條線內的點序列;

第三層是不同的線的排列。

你可以看到這樣的圖案:

Flot介紹

你也可以在數組的第三層,給定一種被稱為“series”的對象,而不是單純的數據,來指定你想要的線條的展示形式,如:

  1. var d1 = [];  
  2. for (var i = 0; i < 14; i += 0.5)  
  3.     d1.push([i, Math.sin(i)]);  
  4.    
  5. var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];  
  6.    
  7. var d3 = [];  
  8. for (var i = 0; i < 14; i += 0.5)  
  9.     d3.push([i, Math.cos(i)]);  
  10.    
  11. var d4 = [];  
  12. for (var i = 0; i < 14; i += 0.1)  
  13.     d4.push([i, Math.sqrt(i * 10)]);  
  14.    
  15. var d5 = [];  
  16. for (var i = 0; i < 14; i += 0.5)  
  17.     d5.push([i, Math.sqrt(i)]);  
  18.    
  19. var d6 = [];  
  20. for (var i = 0; i < 14; i += 0.5 + Math.random())  
  21.     d6.push([i, Math.sqrt(2*i + Math.sin(i) + 5)]);  
  22.                        
  23. $.plot($("#placeholder"), [  
  24.     {  
  25.         data: d1,  
  26.         lines: { show: true, fill: true }  
  27.     },  
  28.     {  
  29.         data: d2,  
  30.         bars: { show: true }  
  31.     },  
  32.     {  
  33.         data: d3,  
  34.         points: { show: true }  
  35.     },  
  36.     {  
  37.         data: d4,  
  38.         lines: { show: true }  
  39.     },  
  40.     {  
  41.         data: d5,  
  42.         lines: { show: true },  
  43.         points: { show: true }  
  44.     },  
  45.     {  
  46.         data: d6,  
  47.         lines: { show: true, steps: true }  
  48.     }  
  49. ]); 

展示成如下形式:

Flot介紹

關于線條類型,總共有line、point、bar這三種類型可以選,當然也可以是這三種類型的組合。

對于不同坐標軸(axes)和不同坐標單位的展示,例如里面橫軸表示時間,格式“yyyy/mm/dd”這樣的,縱軸表示行駛的里程,格式是“xxx (km)”這樣的,解決這樣的問題,你需要做的是:

首先需要把所有數據數值化,就是變成純粹的整形或者浮點型的數值,這樣Flot才能識別數據的格式,例如時間就變成毫秒數,里程就變成千米數;

再自定義坐標軸展示的callback函數。例如:

  1. { position: "left", tickFormatter: KMFormatter, show: true, labelWidth: 30, show: true

Flot是支持多x軸或者多y軸的,在這種情況下,series中只要指定了數據對應的坐標軸的序號,就可以實現多軸效果:

Flot介紹

還有兩個概念需要提及,一個是“legend”,就是展示在圖中(比如上圖中的左下角)或者圖外面的圖示,用來標識圖中不同顏色的線分別表示什么含義;還有一個叫做“grid”,就是圖中的網格,也包括坐標軸的刻度和圖形的邊框。

核心的概念就是這些,Flot的API設計得很簡潔,所以需要額外學習的東西也很少,馬上就可以上手使用。

具體的信息,可以閱讀它的官方API文檔,這非常有用;但是還有很多信息,是需要閱讀源碼獲得的(特別是它的許多插件都是沒有什么文檔的),源代碼寫得很清楚。

比較有用的插件包括這幾個:

支持圖像拖拽和圖像縮放的插件,這兩者合并起來就可以實現像Google地圖一樣的功能了;

區域選取的插件

還有這個:Cross Hair,可以在圖像的鼠標位置上顯示一條位置豎線,便于比較相應的數值。

這些直觀的例子都可以在這里找到。

原文鏈接:http://www.raychase.net/1119

【編輯推薦】

  1. 2012年度最佳jQuery插件揭曉
  2. 6個類似書本翻頁效果的jQuery插件
  3. 免費 jQuery UI 主題集合
  4. 時尚jQuery焦點廣告插件
  5. JQuery Tree插件——zTree v3.5.01版發布
責任編輯:張偉 來源: 四火的嘮叨的博客
相關推薦

2011-03-21 13:10:14

Nagios插件

2013-12-02 14:53:20

jQuery插件

2012-05-10 13:45:45

jQuery

2013-12-02 15:36:17

jQuery插件

2013-12-02 15:43:05

jQuery插件

2009-06-24 10:58:21

jQuery插件教程

2013-03-20 13:21:51

jQueryjQuery插件

2012-04-16 09:19:03

jQuery插件

2013-12-02 15:31:37

jQuery插件

2012-04-25 09:43:43

jQuery插件

2013-12-02 15:10:56

jQuery插件

2013-12-02 15:21:30

jQuery插件

2009-12-15 11:28:34

.NET Framew

2011-08-01 08:51:12

jQuery Mobi插件

2012-03-29 09:27:49

WEBjQuery

2012-04-24 10:36:08

jQuery插件

2012-07-16 14:32:03

jQuery

2010-01-06 15:18:51

Json插件

2013-10-09 10:00:35

JQueryJQuery插件

2012-05-22 01:45:58

JavaScriptCSSXML
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久日韩精品一区二区三区 | 久久国产一区二区 | 欧美二区三区 | 一级在线免费观看 | 成人免费视频 | 亚洲精品久久久久久一区二区 | 在线一区 | 久久激情五月丁香伊人 | 日本不卡一区 | 国内精品一区二区三区 | 91成人精品视频 | 欧美区在线 | 日本免费一区二区三区 | 亚洲精品视频一区二区三区 | 中文字幕一级 | av三级| 午夜影院在线观看 | 一本大道久久a久久精二百 欧洲一区二区三区 | 亚洲黄色成人网 | eeuss国产一区二区三区四区 | 国产高清视频在线观看播放 | 欧美精品在线一区 | 亚洲精品视频导航 | 欧美激情 亚洲 | av毛片免费 | 伊人超碰 | 91av在线不卡 | 欧美日韩国产精品激情在线播放 | 精精国产xxxx视频在线播放 | 成人福利网站 | 99国产精品99久久久久久 | 精精国产xxxx视频在线播放7 | 久久国产精品无码网站 | 国产精品a一区二区三区网址 | 午夜精品 | 黄色一级电影在线观看 | 久久成人国产精品 | 国产精品久久久久免费 | 国产精品国产精品国产专区不蜜 | 99久久精品免费 | 国产在线观看一区二区三区 |