溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣使用RoughViz可視化Vue.js中的草繪圖表

發(fā)布時(shí)間:2021-02-01 09:28:49 來源:億速云 閱讀:152 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)怎樣使用RoughViz可視化Vue.js中的草繪圖表的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

圖表是數(shù)據(jù)的圖形表示,用于使數(shù)據(jù)集更易于閱讀,并且易于區(qū)分各部分。雖然大多數(shù)用戶習(xí)慣于看到簡(jiǎn)潔而正式的圖表,但一些用戶更喜歡看到手繪或素描的圖表,這就是 roughViz 的用武之地。

roughViz 是一個(gè)基于 D3.js 和 Rough.js 的 JavaScript 庫。該庫旨在幫助構(gòu)建看起來像草圖或手繪圖的圖表,如下例所示。

怎樣使用RoughViz可視化Vue.js中的草繪圖表

在本指南中,你將學(xué)習(xí)如何使用 vue-roughviz 在 Vue.js 應(yīng)用程序中顯示類似草圖的圖表,以及如何使用 vue-cli 配置 Vue 應(yīng)用程序。

先決條件

本教程假定滿足以下先決條件:

  • 對(duì) Vue.js 的基本了解

  • Node.js 的本地開發(fā)環(huán)境,以及對(duì) Node 軟件包管理器(npm)的熟悉

  • 文本編輯器,例如 Visual Studio Code 或 Atom

開始

如果尚未安裝 vue-cli,請(qǐng)運(yùn)行以下命令以安裝最新版本。

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

現(xiàn)在,創(chuàng)建一個(gè)新的 vue 應(yīng)用程序:

vue create my-app

注意:此過程可能需要幾分鐘。完成后,我們可以進(jìn)入新的應(yīng)用程序根目錄:

cd my-app

上面詳細(xì)描述的過程創(chuàng)建了一個(gè)新的 Vue.js 應(yīng)用程序。為了確保一切都設(shè)置好了,運(yùn)行 npm run serve。當(dāng)你訪問http://localhost:8080時(shí),你應(yīng)該會(huì)在瀏覽器中看到“Welcome to Your Vue.js app page”。

添加 vue-roughviz

vue-roughviz 是 RoughViz.js 的 Vue.js 包裝器。這使得該庫可以作為組件進(jìn)行訪問,從而可以在基于 Vue.js 的項(xiàng)目中實(shí)現(xiàn)無縫重用。

要將 vue-roughviz 包含在我們的項(xiàng)目中,請(qǐng)運(yùn)行:

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 添加到項(xiàng)目后,下一步是在首選的文本編輯器中打開項(xiàng)目文件夾。

當(dāng)你打開 src/App.vue 文件時(shí),初始內(nèi)容應(yīng)類似于下圖:

怎樣使用RoughViz可視化Vue.js中的草繪圖表

如果你的視圖如上所述,請(qǐng)繼續(xù)并刪除其所有內(nèi)容,并替換為以下代碼:

<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- fill-weight="3.5" />
 
 </div>

</template>

代碼說明

  • import ...——這行代碼是從我們先前安裝的 vue-roughviz 導(dǎo)入 rawBar 組件。

  • export default {} ——此塊是為了使以前導(dǎo)入的組件(roughBar)在我們的應(yīng)用中可用。

  • <rough-bar :data="[...]" /> ——這是我們調(diào)用外部 rawBar 組件的地方,這些組件中指定的屬性是必需的 prop。

vue-roughviz props

唯一需要的 prop 是 data,它是用來構(gòu)造圖表的數(shù)據(jù),這可以是字符串或?qū)ο蟆?/p>

如果選擇一個(gè)對(duì)象,則該對(duì)象必須包含 labels 和 values 鍵。如果改用字符串,則字符串必須是 csv 或 tsv 文件的 URL。在這個(gè)文件中,還必須將 labels 和 values 指定為表示每個(gè)列的單獨(dú)屬性。

其他有用的 prop 包括:

  1. title——指定圖表標(biāo)題

  2. roughness——圖表的粗細(xì)度等級(jí)

  3. stroke——bar stroke 的顏色

  4. stroke-width

  5. fill-weight——指定內(nèi)部路徑顏色的粗細(xì)。

  6. fill-style——條形填充樣式,可以是以下一種:

  • dashed

  • solid

  • zigzag-line

  • cross-hatch

  • hachure

  • zigzag

運(yùn)行

要預(yù)覽我們的應(yīng)用,運(yùn)行 npm run serve。如果你正確地遵循了上述步驟,訪問http://localhost:8080應(yīng)該允許你查看瀏覽器中顯示的圖表。

怎樣使用RoughViz可視化Vue.js中的草繪圖表

從外部 API 加載數(shù)據(jù)

讓我們做一個(gè)小實(shí)驗(yàn),在我們的圖表中顯示過去 10 天比特幣的價(jià)格歷史。在這個(gè)實(shí)驗(yàn)中,我們將使用 Coingecko API。

為什么選擇 Coingecko?與其他加密貨幣 API 不同,Coingecko 是免費(fèi)的,不需要 API 密鑰就可以開始,這是我們實(shí)驗(yàn)的理想選擇。

繼續(xù),用下面的代碼替換 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- fill-weight="2" />
  
 </div>
 
 </div>

</template>

我們創(chuàng)建了一個(gè)異步方法 loadData() ,它從 coingecko API 獲取比特幣價(jià)格歷史記錄,并循環(huán)遍歷返回的數(shù)據(jù)。我們將日期與價(jià)格分開,使用返回的日期作為圖表標(biāo)簽,價(jià)格作為圖表值。而 beforeMount() 也就是在我們的應(yīng)用被掛載到視圖之前,我們調(diào)用了前面創(chuàng)建的 loadData() 函數(shù)。

運(yùn)行我們的應(yīng)用程序應(yīng)該,你應(yīng)該看到我們的圖表的新變化如下:

怎樣使用RoughViz可視化Vue.js中的草繪圖表

感謝各位的閱讀!關(guān)于“怎樣使用RoughViz可視化Vue.js中的草繪圖表”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI