如何使用RoughViz可视化Vue.js中的草绘图表


Posted in Vue.js onJanuary 30, 2021

介绍

图表是数据的图形表示,用于使数据集更易于阅读,并且易于区分各部分。虽然大多数用户习惯于看到简洁而正式的图表,但一些用户更喜欢看到手绘或素描的图表,这就是 roughViz 的用武之地。

roughViz 是一个基于 D3.js 和 Rough.js 的 JavaScript 库。该库旨在帮助构建看起来像草图或手绘图的图表,如下例所示。

如何使用RoughViz可视化Vue.js中的草绘图表

在本指南中,你将学习如何使用 vue-roughviz 在 Vue.js 应用程序中显示类似草图的图表,以及如何使用 vue-cli 配置 Vue 应用程序。

先决条件

本教程假定满足以下先决条件:

  • 对 Vue.js 的基本了解
  • Node.js 的本地开发环境,以及对 Node 软件包管理器(npm)的熟悉
  • 文本编辑器,例如 Visual Studio Code 或 Atom

开始

如果尚未安装 vue-cli,请运行以下命令以安装最新版本。

npm install -g @vue/cli
# OR
yarn global add @vue/cli

现在,创建一个新的 vue 应用程序:

vue create my-app

注意:此过程可能需要几分钟。完成后,我们可以进入新的应用程序根目录:

cd my-app

上面详细描述的过程创建了一个新的 Vue.js 应用程序。为了确保一切都设置好了,运行 npm run serve。当你访问http://localhost:8080时,你应该会在浏览器中看到“Welcome to Your Vue.js app page”。

添加 vue-roughviz

vue-roughviz 是 RoughViz.js 的 Vue.js 包装器。这使得该库可以作为组件进行访问,从而可以在基于 Vue.js 的项目中实现无缝重用。

要将 vue-roughviz 包含在我们的项目中,请运行:

npm install vue-roughviz

vue-roughViz 组件

vue-roughviz 提供了所有 rawViz 图表样式的组件,其中包括:

  • roughBar——rawViz 条形图组件
  • roughBarH——roughViz 水平条形图组件
  • roughDonut——roughViz 甜甜圈图组件
  • roughPie——roughViz 饼图
  • roughLine——roughViz 折线图组件
  • roughScatter——roughViz 分散图表组件
  • roughStackedBar——roughViz 堆叠条形图组件

使用

将 vue-roughviz 添加到项目后,下一步是在首选的文本编辑器中打开项目文件夹。

当你打开 src/App.vue 文件时,初始内容应类似于下图:

如何使用RoughViz可视化Vue.js中的草绘图表

如果你的视图如上所述,请继续并删除其所有内容,并替换为以下代码:

<template>
 
 <div id="app">
  
 <rough-bar :data="{
    labels: ['North', 'South', 'East', 'West'],
    values: [10, 5, 8, 3],
   }" title="Regions" roughness="8" :colors="['red', 'orange', 'blue', 'skyblue']" stroke="black" stroke-width="3" fill-style="cross-hatch" fill-weight="3.5" />
 
 </div>

</template>

代码说明

  • import ...——这行代码是从我们先前安装的 vue-roughviz 导入 rawBar 组件。
  • export default {} ——此块是为了使以前导入的组件(roughBar)在我们的应用中可用。
  • <rough-bar :data="[...]" /> ——这是我们调用外部 rawBar 组件的地方,这些组件中指定的属性是必需的 prop。

vue-roughviz props

唯一需要的 prop 是 data,它是用来构造图表的数据,这可以是字符串或对象。

如果选择一个对象,则该对象必须包含 labels 和 values 键。如果改用字符串,则字符串必须是 csv 或 tsv 文件的 URL。在这个文件中,还必须将 labels 和 values 指定为表示每个列的单独属性。

其他有用的 prop 包括:

  1. title——指定图表标题
  2. roughness——图表的粗细度等级
  3. stroke——bar stroke 的颜色
  4. stroke-width
  5. fill-weight——指定内部路径颜色的粗细。
  6. fill-style——条形填充样式,可以是以下一种:
  • dashed
  • solid
  • zigzag-line
  • cross-hatch
  • hachure
  • zigzag

运行

要预览我们的应用,运行 npm run serve。如果你正确地遵循了上述步骤,访问http://localhost:8080应该允许你查看浏览器中显示的图表。

如何使用RoughViz可视化Vue.js中的草绘图表

从外部 API 加载数据

让我们做一个小实验,在我们的图表中显示过去 10 天比特币的价格历史。在这个实验中,我们将使用 Coingecko API。

为什么选择 Coingecko?与其他加密货币 API 不同,Coingecko 是免费的,不需要 API 密钥就可以开始,这是我们实验的理想选择。

继续,用下面的代码替换 src/App.vue

<template>
 
 <div id="app">
  
 <div>
   
  <rough-bar v-if="chartValue.length > 0" :data="{
     labels: chartLabel,
     values: chartValue,
    }" title="BTC - 10 Days" roughness="3" stroke="black" stroke-width="1" fill-style="zig-zag" fill-weight="2" />
  
 </div>
 
 </div>

</template>

我们创建了一个异步方法 loadData() ,它从 coingecko API 获取比特币价格历史记录,并循环遍历返回的数据。我们将日期与价格分开,使用返回的日期作为图表标签,价格作为图表值。而 beforeMount() 也就是在我们的应用被挂载到视图之前,我们调用了前面创建的 loadData() 函数。

运行我们的应用程序应该,你应该看到我们的图表的新变化如下:

如何使用RoughViz可视化Vue.js中的草绘图表

以上就是如何使用RoughViz可视化Vue.js中的草绘图表的详细内容,更多关于RoughViz可视化Vue.js中的草绘图表的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
vue3使用vuedraggable实现拖拽功能
Apr 06 Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 Vue.js
vue封装数字翻牌器
Apr 20 Vue.js
vue监听键盘事件的相关总结
Jan 29 #Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 #Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 #Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 #Vue.js
聊聊vue 中的v-on参数问题
Jan 29 #Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 #Vue.js
Vue 事件的$event参数=事件的值案例
Jan 29 #Vue.js
You might like
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
django1.8使用表单上传文件的实现方法
2016/11/04 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
python实现人民币大写转换
2018/06/20 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
药剂学专业应届生自荐信
2013/09/29 职场文书
校本教研工作方案
2014/01/14 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
公开服务承诺制度
2014/03/26 职场文书
双创工作实施方案
2014/03/26 职场文书
初中学生评语大全
2014/04/24 职场文书
体育节口号
2014/06/19 职场文书
基层党员对照检查材料
2014/08/25 职场文书
学校个人对照检查材料
2014/08/26 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
淮海战役观后感
2015/06/11 职场文书
教师节座谈会主持词
2015/07/03 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫