摘要:使用純語言利用的標簽繪制各式圖形。致力于為您的應用提供簡單直觀可交互的體驗級圖表組件。目前支持餅圖環形圖折線圖面積圖柱形圖條形圖。是基于協議的開源項目。陰影圖形效果圖其他形狀的圖標類似,不再陳述。
導語
No1.一分鐘快速入門教程-Hello Worldichartjs是一款基于HTML5的圖形庫。使用純javascript語言, 利用HTML5的canvas標簽繪制各式圖形。 ichartjs致力于為您的應用提供簡單、直觀、可交互的體驗級圖表組件。是WEB/APP圖表展示方面的解決方案 。如果你正在開發HTML5的應用,ichartjs正好適合您。 ichartjs目前支持餅圖、環形圖、折線圖、面積圖、柱形圖、條形圖。ichartjs是基于Apache License 2.0協議的開源項目。
千里之行,始于足下。我們先從Hello World開始。
首先引入js文件 代碼片段//定義數據 $(function(){ var chart = new iChart.Column2D({ render : "canvasDiv",//渲染的Dom目標,canvasDiv為Dom的ID data: data,//綁定數據 title : "Hello World"s Height In Alphabet",//設置標題 width : 800,//設置寬度,默認單位為px height : 400,//設置高度,默認單位為px shadow:true,//激活陰影 shadow_color:"#c7c7c7",//設置陰影顏色 coordinate:{//配置自定義坐標軸 scale:[{//配置自定義值軸 position:"left",//配置左值軸 start_scale:0,//設置開始刻度為0 end_scale:26,//設置結束刻度為26 scale_space:2,//設置刻度間距 listeners:{//配置事件 parseText:function(t,x,y){//設置解析值軸文本 return {text:t+" cm"} } } }] }運行結果
No2.定制屬于自己的柱狀圖至此,簡單的入門已經完成,但是不能僅限于此,拓展下思路,如果柱狀圖不僅僅是單色填充,而是各式各樣的圖形,或者具有漸變效果的填充,該如何實現呢?
首先看看我想實現的效果
再有:
查閱了ichart官方的demo和文檔,未看到這方面的效果,只能自己動手,豐衣足食了。
字符串圖形首先實現一個相對簡單的,繪制各種字符串。由于ichart底層是基于canvas的,所以只要拿到畫筆,想畫什么畫什么,想畫哪里畫哪里。
首先運行上面的HelloWorld,單步調試,找到最終繪制的入口。
doDraw:function(_){ if(_.get("actived")){ _.drawRectangle(); } },
這里就是最終繪制的入口,可見源碼中僅僅可以繪制矩形,好單一的感覺。
修改后的這個的入口:
doDraw:function(_){ if(_.get("actived")){ var _ = this._(); var type = _.options.type; if(type === "slash"){ _.drawSlash(); }else if(type === "innerRect"){ _.drawInnerRect(); }else if(type === "wire"){ _.drawWire(); }else if(type === "star"){ _.drawStar(); }else if(type === "exclamation"){ _.drawExclamation(); }else if(type ==="innerRectAndLine"){ _.drawInnerRectAndLine(); }else if(type === "judge"){ _.drawJudge(); }else{ _.drawRectangle(); } } },
默認依然繪制矩形,但是根據傳入的類別,可以繪制圖形的圖形,如type==="exclamation",程序會調用_.drawExclamation();方法,我們看看drawExclamation()方法的定義:
drawExclamation: function() { var _ = this._(); var x = _.get(_.X), y = _.get(_.Y), w=_.get(_.W), h=_.get(_.H), border=_.get("border"), f_color=_.get("f_color"), shadow=_.get("shadow"); _.T.box( _.get(_.X), _.get(_.Y), _.get(_.W), _.get(_.H), _.get("border"), _.get("f_color"), _.get("shadow")); var character = _.options.character && _.options.character.value; _.T.textStyle(_.L, "middle", $.getFont(_.get("fontweight"), _.get("fontsize"), _.get("font"))); _.T.fillText(character, x + w/2 - _.T.measureText(character)/2, y+h/2, _.get("textwidth"), border.color); },
代碼中顯示,首先繪制矩形Box,其次繪制傳入的文字,這樣我們的貨幣匯率表就很容易實現了。
陰影圖形drawSlash: function(){ var _ = this._(); var x = _.get(_.X), y = _.get(_.Y), w=_.get(_.W), h=_.get(_.H), border=_.get("border"), f_color=_.get("f_color"), shadow=_.get("shadow"); _.T.box( _.get(_.X), _.get(_.Y), _.get(_.W), _.get(_.H), _.get("border"), _.get("f_color"), _.get("shadow")); var difcount = 9; var a = h/w, dx = parseInt(w/difcount), dy = dx * a; for(var i = x + dx;i<= x+w; i+=dx){ var x0 = i - border.width,y0 = y + border.width; var x1 = x + border.width, y1 = y + dy * (i-x)/dx - border.width; _.T.line(x0,y0,x1,y1, border.width, border.color, false); if(i !== x){ var x0 = i - border.width,y0 = y + h - border.width; var x1 = x + w - border.width, y1 = y + dy * (i-x)/dx - border.width; _.T.line(x0,y0,x1,y1, border.width, border.color, false); } } },
效果圖:
其他形狀的圖標類似,不再陳述。多看看一些效果圖吧:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82026.html
摘要:導語大數據呈現應用越來越廣泛支持大數據呈現的,水平較高的有然而在地圖呈現的功能上,大都只能繪制矢量地圖,而不能呈現具有真實效果的地圖鑒于此,本文重點在于如何制作一張,即可以看到真實效果,又能進行交互的矢量地圖先睹為快若有所思技術選擇想實現上 導語 大數據呈現應用越來越廣泛,支持大數據呈現的SDK,水平較高的有echarts、highchart、D3;然而在地圖呈現的功能上,大都只能繪制...
摘要:俗話說,不會使用工具來完成任務的都是進化不完全的表現,大數據時代,可視化已經深深鉆進我們的生活,使用可視化工具也變的相當普遍,今天我們來總結下當下可視化工具都有哪些。是一個地圖庫,主要面向數據可視化用戶。 俗話說,不會使用工具來完成任務的都是進化不完全的表現,大數據時代,可視化已經深深鉆進我們的生活,使用可視化工具也變的相當普遍,今天我們來總結下當下可視化工具都有哪些。 showImg...
摘要:定制元素可以在原生元素外創建定制元素。此定制元素內部有一個加號按鈕,一個減號按鈕,一個顯示當前值。此主題會在下一部分內介紹。定制元素的屬性元素的屬性被稱為,對象內的屬性被稱為。做響應的同步處理。 Web Components 全攬 Web Components技術可以把一組相關的HTML、JS代碼和CSS風格打包成為一個自包含的組件,只要使用大家熟悉的標簽即可引入此組件。Web Com...
摘要:為什么我們需要是一個基于的套件庫,兼容。全面的國際化支持所有組件的內置文案支持國際化,大部分文案用戶可以主動設置。持續的功能增強借助社區和團隊自身的力量,會在現有基礎上優化使用體驗,增強組件功能,添加更多常用組件來滿足不同場景的需求。 showImg(https://gw.alicdn.com/tps/TB1TVapKFXXXXbbXpXXXXXXXXXX-1000-500.png);...
摘要:腳手架工具封裝了物料操作命令,幫助用戶快速創建物料項目并將其發布至物料平臺。非常重視每一位開發者和用戶的意見,希望大家踴躍反饋,積極共建。 ArcoDesign 提供的能力 完善的基礎組件 基于 ArcoDesign 設計規范,Arco 提供了 67 個基礎組件,這些基礎組件足以支撐絕大多數的業務需求。同時,Arco 在這些基礎組件的設計上,也開放了細粒度的配置,方便后續拓...
閱讀 1266·2021-10-14 09:50
閱讀 1567·2019-08-30 15:54
閱讀 1023·2019-08-30 11:22
閱讀 2916·2019-08-30 10:50
閱讀 1801·2019-08-29 18:39
閱讀 3050·2019-08-29 13:07
閱讀 2079·2019-08-28 17:54
閱讀 751·2019-08-26 17:44