前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >颜值即正义!这几个库颠覆你对数据交互的想象

颜值即正义!这几个库颠覆你对数据交互的想象

作者头像
前端劝退师
发布2019-12-16 16:14:37
1.9K0
发布2019-12-16 16:14:37
举报
文章被收录于专栏:前端劝退师前端劝退师

前言

作为一个对UI和动画敏感的切图仔,在日常开发之余,也会关注一些贼好看的图表库和插件。

接下来,我将给大家介绍几款web/python/vue/react里漂亮得不行的开源库/实现。

1. 手绘风图表库:roughViz.js

基于D3(v5), roughjs, 和handy

1.1 衡量方式

有三种衡量方式:

粗糙度:

线条种类:

线条粗细:

1.2 多种搭配

简答CDN:

代码语言:javascript
复制
<script src="https://unpkg.com/rough-viz@1.0.5"></script>

npm:

代码语言:javascript
复制
npm install rough-viz

react/vue:

代码语言:javascript
复制
npm install react-roughviz
npm install vue-roughviz

甚至在Python中也可以:

代码语言:javascript
复制
pip install roughviz

1.3 简单使用

首先定义两个div

代码语言:javascript
复制
<div id="vis0"></div>
<div id="vis1"></div>

之后new两个实例:

代码语言:javascript
复制
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

Webreact-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是微软发布的一款数据可视化软件,可以在较短时间内生成各种报表。
  2. VSCode插件形式:
  1. 网页版和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框架提供glTFOBJ两个格式官网建议使用glTF

3. 创建index.html并把这些代码都贴上
代码语言:javascript
复制

<script src="https://aframe.io/releases/0.9.0/aframe.min.js"></script>
<script src="https://rawgit.com/jeromeetienne/ar.js/master/aframe/build/aframe-ar.js"></script>
<script>THREEx.ArToolkitContext.baseURL = 'https://rawgit.com/jeromeetienne/ar.js/master/three.js/'</script>

<body style='margin : 0px; overflow: hidden;'>
    <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
        <a-marker type='pattern' url='res/pattern-marker.patt'>
            <a-entity position='-3 2 0' text="width: 5; value:I am Psyduck. We are pokemon. We love you"></a-entity>
            <a-entity position='0 0 0' gltf-model="url(res/scene.gltf)"></a-entity>
        </a-marker>
    </a-scene>
</body>
  • 第 1〜3 行:把 js 套件都约会进来
  • 第 6 行:使用A-framehtml标签添加一个a-scene摄像头并把AR.js崁入
  • 第 7 行:标记Marker如果标记的Marker出现在摄像头里就会执行下方的事情
  • 第 8 行:新增你想要跟对方说的话
  • 第 9 行:新增3D模型
4. 部署你的应用。
5. 制作一个可供识别的二维码
6. 制作一张实体卡片
7. 扫一扫

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

请欣赏一个价值 2199 刀的模型

还有超赞的《这个杀手不太冷》女孩模型

这也太好看了吧。

4. 后记&引用

原本想凑齐十个再发的,但找了好久,都没什么开源库能入我法眼。

恳请大家,推荐几款骚得不行的开源库,我来补充补充,谢谢喇。

❤️ 看完三件事

如果你觉得这篇内容对你挺有启发,我想邀请你帮我三个小忙:

  1. 点赞,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
  2. 关注公众号「前端劝退师」,不定期分享原创知识。
  3. 也看看其它文章

(图片如果已失效,可以加我微信:huab119

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

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

参考资料

[1]

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端劝退师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1. 手绘风图表库:roughViz.js
    • 1.1 衡量方式
      • 1.2 多种搭配
        • 1.3 简单使用
        • 2. 抖音字体爆炸特效:react-three-fiber
        • 3. 播放器里的颜值担当:Mini Music Player - VueJS
        • 4. UI都夸好的卡片验证库:interactive-paycard
        • 5. 真*动态可视化数据:SandDance
        • 6. 实现一个自己的AR: AR.js+Three.js+Autodesk 3D
          • 6.1 实现步骤
            • 1. 查找模型
            • 2. 下载 3D 模型
            • 3. 创建index.html并把这些代码都贴上
            • 4. 部署你的应用。
            • 5. 制作一个可供识别的二维码
            • 6. 制作一张实体卡片
            • 7. 扫一扫
        • 4. 后记&引用
        • ❤️ 看完三件事
          • 参考资料
          相关产品与服务
          图像处理
          图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档