如何使用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实现下载文件流完整前后端代码
Nov 17 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
Vue使用Ref跨层级获取组件的步骤
Jan 25 Vue.js
vue实现简单数据双向绑定
Apr 28 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
详解Vue router路由
Nov 20 Vue.js
Vue.js中v-bind指令的用法介绍
Mar 13 Vue.js
vue实现拖拽交换位置
Apr 07 Vue.js
vue 把二维或多维数组转一维数组
Apr 24 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP 编写大型网站问题集
2010/05/07 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python微信公众号开发简单流程
2018/03/23 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
详解Python文件修改的两种方式
2019/08/22 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
利用python绘制正态分布曲线
2021/01/04 Python
CSS3 简写animation
2012/05/10 HTML / CSS
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
考察现实表现材料
2014/05/19 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
思想道德自我评价2015
2015/03/09 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
详解python的异常捕获
2022/03/03 Python