顏值即正義!這幾個庫顛覆你對數據交互的想象

前言

作為一個對UI和動畫敏感的切圖仔,在日常開發之餘,也會關注一些賊好看的圖表庫和插件。

接下來,我將給大家介紹幾款web/python/vue/react裡漂亮得不行的開源庫/實現。

顏值即正義!這幾個庫顛覆你對數據交互的想象

1. 手繪風圖表庫:`roughViz.js`

顏值即正義!這幾個庫顛覆你對數據交互的想象

基於D3(v5), roughjs, 和handy。

1.1 衡量方式

有三種衡量方式:

粗糙度:

顏值即正義!這幾個庫顛覆你對數據交互的想象

線條種類:

顏值即正義!這幾個庫顛覆你對數據交互的想象

線條粗細:

顏值即正義!這幾個庫顛覆你對數據交互的想象

1.2 多種搭配

簡答CDN:

 

npm:

npm install rough-viz

react/vue:

npm install react-roughviz
npm install vue-roughviz

甚至在Python中也可以:

pip install roughviz

1.3 簡單使用

顏值即正義!這幾個庫顛覆你對數據交互的想象

首先定義兩個div

之後new兩個實例:

new roughViz.BarH(
 {
 element: '#vis0',
 title: "Vehicles I've Had",
 titleFontSize: '1.5rem',
 legend: false,
 margin: {top: 50, bottom: 100, left: 160, right: 0},
 data: {
 labels: ['1992 Ford Aerostar Van', '2013 Kia Rio', '1980 Honda CB 125s', '1992 Toyota Tercel'],
 values: [8, 4, 6, 2]
 },
 xLabel: 'Time Owned (Years)',
 strokeWidth: 2,
 fillStyle: 'zigzag-line',
 highlight: 'gold',
 }
);

 new roughViz.BarH(
 {
 element: '#vis1',
 titleFontSize: '1.5rem',
 data: 'https://raw.githubusercontent.com/jwilber/random_data/master/owTanks.csv'
 color: 'tan',
 labels: 'name',
 values: 'health',
 title: "Overwatch Tank Health",
 roughness: 4,
 }
 );

整個的配置非常簡潔,其中:

  • data: 數據源,支持簡單對象或csv格式的文件
  • roughness: 線條粗糙混亂層級。如果調成 10,就會變成這樣:

線上體驗demo: https://blockbuilder.org/jwilber/419fa6d878fe6c0f79a28f9fc72d7ec6

具體用法請參照官方文檔:https://github.com/jwilber/roughViz

2. 抖音字體爆炸特效:`react-three-fiber`

顏值即正義!這幾個庫顛覆你對數據交互的想象

Web和react-native都可用的高性能Threejs for react庫。

可以在React外部驅動渲染循環,而不會產生額外開銷。

最新版本採用了Hooks的寫法,不像以往強行兼容的Threejs,寫起來更加友好。

不止抖音字體爆炸特效,它能實現什麼,源於你的技術和想象力。

以下一部分特效:

顏值即正義!這幾個庫顛覆你對數據交互的想象

如果有人學會了…大佬帶帶?

顏值即正義!這幾個庫顛覆你對數據交互的想象


抖音爆炸特效的實現:


顏值即正義!這幾個庫顛覆你對數據交互的想象

其中用到一個庫:react-spring,這是react最優秀的動畫庫,沒有之一。

官方文檔:https://github.com/react-spring/react-three-fiber

字體爆炸:https://codesandbox.io/s/y3j31r13zz

3. 播放器裡的顏值擔當:`Mini Music Player - VueJS`

顏值即正義!這幾個庫顛覆你對數據交互的想象

國外友人寫的一個Vue.js音樂播放器,好看的不得了。

其中的交互和邏輯,也是非常精煉。

源碼:https://codepen.io/JavaScriptJunkie/pen/qBWrRyg

4. `UI`都誇好的卡片驗證庫:`interactive-paycard`

顏值即正義!這幾個庫顛覆你對數據交互的想象

這個 11 月Vue新庫一發布,就狂攬3k+star,過於優秀。

完整庫名vue-interactive-paycard

React版的作者表示也即將發佈了。

源碼:https://github.com/muhammederdem/vue-interactive-paycard/issues

5. 真*動態可視化數據:`SandDance`

顏值即正義!這幾個庫顛覆你對數據交互的想象

微軟出品,必屬精品

SandDance是使用Vega進行圖表佈局,使用Deck.gl進行WebGL渲染。

能在如此密集的數據量上保持動畫流暢和美觀的,也就微軟爸爸能做到了。

我先跪了,你們隨意。

此外,該庫還有多種使用方式:

  1. Power BI軟件內使用:
  • PowerBI是微軟發佈的一款數據可視化軟件,可以在較短時間內生成各種報表。
  1. VSCode插件形式:
  2. 網頁版和React:

官網:https://sanddance.js.org/

體驗:https://sanddance.js.org/app/

6. 實現一個自己的`AR`: `AR.js`+`Three.js`+`Autodesk 3D`

顏值即正義!這幾個庫顛覆你對數據交互的想象

這是個很有意思的實現,大致流程是:

  1. 手機開啟瀏覽器
  2. AR.js程序開始
  3. ARToolKit識別到圖片標記
  4. A-Frame.js開始調用Three.js渲染 3D 模型
  5. 在畫面上顯示
顏值即正義!這幾個庫顛覆你對數據交互的想象

6.1 實現步驟

1. 查找模型

首先我們先到 https://sketchfab.com下載自己喜歡的 3D 模型

顏值即正義!這幾個庫顛覆你對數據交互的想象

顏值即正義!這幾個庫顛覆你對數據交互的想象

2. 下載 3D 模型

顏值即正義!這幾個庫顛覆你對數據交互的想象

下載glTF格式(A框架提供glTF,OBJ兩個格式官網建議使用glTF)

3. 創建`index.html`並把這些代碼都貼上

 
 
 


 
 
 
 
 
 

  • 第 1〜3 行:把 js 套件都約會進來
  • 第 6 行:使用A-frame的html標籤添加一個a-scene攝像頭並把AR.js崁入
  • 第 7 行:標記Marker如果標記的Marker出現在攝像頭裡就會執行下方的事情
  • 第 8 行:新增你想要跟對方說的話
  • 第 9 行:新增3D模型

4. 部署你的應用。

5. 製作一個可供識別的二維碼

顏值即正義!這幾個庫顛覆你對數據交互的想象

6. 製作一張實體卡片

顏值即正義!這幾個庫顛覆你對數據交互的想象

7. 掃一掃

顏值即正義!這幾個庫顛覆你對數據交互的想象

原文:AR 用 AR.js 做一個讓另對方 喔喔喔喔! 的小卡片吧!

請欣賞一個價值 2199 刀的模型

顏值即正義!這幾個庫顛覆你對數據交互的想象

還有超讚的《這個殺手不太冷》女孩模型

顏值即正義!這幾個庫顛覆你對數據交互的想象

這也太好看了吧。

顏值即正義!這幾個庫顛覆你對數據交互的想象

4. 後記&引用

原本想湊齊十個再發的,但找了好久,都沒什麼開源庫能入我法眼。

懇請大家,推薦幾款騷得不行的開源庫,我來補充補充,謝謝喇。

顏值即正義!這幾個庫顛覆你對數據交互的想象

❤️ 看完三件事

如果你覺得這篇內容對你挺有啟發,我想邀請你幫我三個小忙:

  1. 點贊,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-)
  2. 關注公眾號「前端勸退師」,不定期分享原創知識。
  3. 也看看其它文章
顏值即正義!這幾個庫顛覆你對數據交互的想象

顏值即正義!這幾個庫顛覆你對數據交互的想象

image-20191204172721437

也可以來我的GitHub博客裡拿所有文章的源文件:

前端勸退指南:https://github.com/roger-hiro/BlogFN


分享到:


相關文章: