高大上必備!D3.js對產品的貢獻度剖析

来源:http://www.cnblogs.com/uyunops/archive/2016/07/07/5649932.html
-Advertisement-
Play Games

在這個用數據說話的時代(靠臉吃飯的年代),沒有一個好的展現形態(沒有一張帥氣清秀的臉蛋),對於整個產品產生的影響,那簡直... ...


 

在這個用數據說話的時代(靠臉吃飯的年代),沒有一個好的展現形態(沒有一張帥氣清秀的臉蛋),對於整個產品產生的影響,那簡直...

 

 

在數據可視化競爭的戰場,互聯網的各家各戶都很註重自家產品的前端展現。這也造成了目前前端各種火到爆,火的不要不要的原因之一。各類新型的框架也是接踵而至,如:emberjs、angluarjs、backbonejs、vuejs以及reactjs等等,這個對目前企業的發展也造成了一定的困擾。

 

追星派:此派弟子非常註重對新技能的渴求,看到新的技能書,不管前方道路如何坎坷,練了再說。只要是新的技術,馬上應用到產品中,最後放棄的有不少。

 

保守派:該門徒比較成熟穩重,想要在穩中求勝,觀察形式的發展,最後再做定奪。往往需要一段時間做技術的選型,周期還是蠻長的。

 

頑固派:這些人一般年紀比較大,不喜世俗新物,只要目前狀況良好,從不考慮吸納新的知識。技術落後了不說,對新入派弟子的轉化率相對要降低很多。

 

創新派:這批生物,看到形式有變,立馬能幫你變出另一個武功秘籍。典型的就有某寶的成員,這裡充斥各種技術大牛,鍛煉能力的好去處。

 

一說好像TM的跑到火星上去了。

 

目前前端的發展屬於一個HTML5的時代,時代的英雄豪傑也是層出不窮,例如:我們的主角D3.js、raphaeljs、國產巨星echarts以及國外猩猩highcharts還有等等。琳瑯滿目,選擇一款合胃口的就行。咱這就來說說,D3js可以幫忙做寫什麼事內?

 

D3js

 

D3js是什麼?前面我們也提到了一點,它是一個可視化工具庫。這工具的強大之處,就跟給了你一張紙和一枝筆,隨心所欲,想怎麼畫就怎麼畫,非常符合任性的我們。它藉助html、svg以及css,可以把我們抽象的數據,形象鮮活的呈現出來。D3是一個嚴格遵循WEB標準,所以它對於目前主流的框架都可以很好的相容,當然它也提供了很強大的可視化組件。

 

官網:https://d3js.org/,它可以輕鬆的使用npm下載(npm i d3),什麼?你問npm是什麼?(npm:https://en.wikipedia.org/wiki/Npm_(software))。

強大的可視化組件:https://github.com/d3/d3/wiki/Gallery

 

小明:老師,你一直在說它如何如何膩害,如何如何強大,那麼能形象生動的具體說說咩?

 

老師:

 

場景一:

 

老闆說,最近我們的人數是越來越多,組織架構也是越來越複雜,是該好好給我們的員工們,理一理組織關係圖了,免得我們的人員找不到自己的組織,躲在廁所哭泣。

按照我們以前的尿性,這不就是一顆樹形結構圖麽,so easy...然後就有了我們以下的圖:

 

LONG LONG AGO老闆看到之後的表情可能是這樣的:

 

欣慰

近幾年互聯網老闆看到的可能是這樣的:

 

無言以對

這個時候如果出現的圖是這樣的:

 

▲請忽略圖上的內容

這個時候老闆肯定會來一個

 

就是它了

 

這個就是D3中的一個tree佈局展現的一個代表形態。能很友好的展現層級關係結構的圖形,非常時候用來描述組織架構這類信息的描述。

 

場景二

 

老闆說,最近我看滴滴打車和uber打車很火熱,你看他們的司機版本在地圖上面還能看打車的集中區域圖,這個數據能力可以乾很多事的。我們也需要幫助運維人員來進行產品分析在哪些時段,用的人比較多,幫助運維人員做分析。

這個時候,很多人想到的可能是通俗的家常風格:

 

▲echarts

我想大家用到的這個echarts圖形應該很多吧,但要是這個時候來一個能脫穎而出的表現力的話,產品在競爭上面必然會加分,比如這樣:

 

▲d3.heatMap

當然這兩種展現風格各有千秋,就看每個人對它的看法了。

 

場景三

 

老闆說需要看到我們的產品有多少機器安裝上了,需要有一個形式展現,並且需要時刻的觀察這個機器上面的一個健康狀況,能直觀的進行數據分析。

這個也是筆者當初拿到手,然後開始著手研究這個展現形式該如何是好。

 

最初筆者覺得,這個東西,不就是可以用一個列表形態來展示麽。艾瑪,立馬來了一個:

 

▲表格形態

可是上級總是覺得這是不夠的,沒有亮點。

 

為了博得眼球,我只能求助於咱的D3黑科技,瞬間就感覺智商已經不欠費了。於是,咱就有了下麵的變種形態類似物:

 

▲pack layout

 

以上,很簡略的介紹了D3能幹些什麼,當然,D3遠遠不止是單單隻有這些形態,上面也說了,它的功能很強大,不怕它做不到,就怕你想不到,用在這裡也是很合適的。

 

它有幾大優勢:

 

1.適應性高

 

一般的第三方組件庫,提供的API往往在很多時候,都滿足不了我們百變的需求。而我們的D3很適應這種場合,它可以隨心所欲的儘可能的滿足我們的需求。因為它使用的是SVG,可以和HTML一樣使用CSS來進行修飾。

 

2.大量的佈局

 

它可以使用變換(transformation)和濾鏡(filter)等等的動畫效果。有很多的佈局,上面介紹的樹裝圖,還有餅狀、打包圖、矩陣圖等等。

 

3.縮放不會損失精度

 

SVG是可以縮放的矢量圖,D3基本是在在SVG上繪製的,所以放大縮小都不會有精度的損失。

 

總之,就先粗略的介紹這些吧~

 

作者:祝恩良,優雲軟體一隻活在二次元世界的萌貨,雖然在三次元的世界賣不了一手好萌

 

優雲軟體:秉承devops的理念,從監控、到應用體驗,到自動化持續交付,全棧運維解決方案服務商 https://uyun.cn


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 當用百分比作為寬高時 因為百分比是相對於其最近的父元素的寬高,所以首先其父元素要有寬高,寬度一般不設置會有預設值(比如整個屏幕的寬度),但是高度不設置就沒有預設值,因此如果父元素沒設高度值,而其內部元素用了百分比作為高度時,是沒有效果的 ...
  • 今年項目的需要,開始琢磨研究前端開發,由於之前項目已經用Angularjs了,就順其而然的繼續沿用。 在使用Angularjs之前,先要準備好工具:Nodejs、npm、git、bower、fis 下麵是各個工具的安裝方法(開發機為64位的Win10): 1.Nodejs1>下載安裝:https:/ ...
  • 響應式佈局可以為不同終端的用戶提供更加舒適的界面和更好的用戶體驗,而且隨著目前大屏幕移動設備的普及,用"大勢所趨"來形容也不為過。隨著越來越多的設計師採用這個技術,我們不僅看到很多的創新,還看到了一些成形的模式。隨著技術的發展css3的特性也被廣泛應用開來,它的很多新標簽也非常好用而且非常容易學習, ...
  • 項目中用到的跨域 ,在除IE9以下的瀏覽器上運行都是沒有問題的,IE8 IE9中報錯,error :no transport; 網上解決辦法均是 在發起請求之前添加 jQuery.support.cors=true;但是,線下測試,是ok的,一放到伺服器上,又出現了新的eroor:readyStat ...
  • 在React中,當涉及組件嵌套,在父組件中使用 把所有子組件顯示出來。如下: function ParentComponent(props){ return ( {props.children} ) } 如果想把父組件中的屬性傳給所有的子組件,該怎麼做呢? 使用 幫助方法就可以做到。 比如,把幾個R ...
  • 相信大家在項目的開發中都遇到過這樣的需求,一行放X(X>1)個塊且相鄰塊之間的間距相同。 大概就是上面這個樣子,下麵介紹幾種實現的方式。 1.負margin大法 設置好元素的寬度和留白占滿父級的寬度,然後設置父級的margin-left為留白的負留白的寬度 *{ margin: 0; padding ...
  • 正則表達式: 我們已經接觸過與正則表達式有關的一些概念。例如在Windows操作系統中,用“?”和“*”通配符來查找硬碟上的文件時,“?”通配符匹配文件名中的單個字元,而“*”通配符匹配零個或多個字元。如“data?.dat”就是一種文本模式,它能匹配“data1.dat”、“datan.dat”和 ...
  • jQuery - serialize() 方法 W3School給出的定義與用法: serialize() 方法通過序列化表單值,創建 URL 編碼文本字元串。 您可以選擇一個或多個表單元素(比如 input 及/或 文本框),或者 form 元素本身。 序列化的值可在生成 AJAX 請求時用於 U ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...