欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何使用D3.js+Vue實現(xiàn)柱形圖

小編給大家分享一下如何使用D3.js+Vue實現(xiàn)柱形圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)服務項目包括瀘州網(wǎng)站建設、瀘州網(wǎng)站制作、瀘州網(wǎng)頁制作以及瀘州網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,瀘州網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到瀘州省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

為什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創(chuàng)建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網(wǎng)頁分割成可復用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網(wǎng)頁中相應的地方,所以越來越多的前端開發(fā)者使用vue。

最近想在Vue的項目里嘗試使用d3.js,封裝一些常用的圖表。這里記錄一下自己搭建項目的過程,以及實現(xiàn)一個簡單的柱形圖。不了解D3的請移步D3 Data-Driven Documents,它是基于數(shù)據(jù)驅動文檔工作方式的一款JavaScript函數(shù)庫,主要用于網(wǎng)頁作圖、生成互動圖形,是最流行的可視化庫之一。

說明

  • 采用Vue-cli腳手架快速搭建項目

  • npm 安裝 D3

  • 實現(xiàn)一個簡單的柱形圖

項目搭建

使用vue-cli搭建單頁應用:

# 安裝 vue-cli
$ npm install --global vue-cli
# 使用 "webpack" 模板創(chuàng)建一個新項目
$ vue init webpack d3-vue
# 安裝依賴,然后開始!
$ cd d3-vue
$ npm run dev

D3安裝(最新的v5版本):

$ npm install d3 --save

D3引入:

$ import * as d3 from 'd3'

實現(xiàn)一個簡單的圖表

1.在Vue中獲取dom元素

在vue中可以通過給標簽添加ref屬性,然后在js中利用this.$refs去引用它,從而操作該dom元素

<template>
 <div>
  <h4>一個簡單的圖表</h4>
  <svg ref="baseBarChart" class="base-bar-chart"></svg>
 </div>
</template>
// 省略的代碼...
var chartSvg = d3.select(this.$refs.baseBarChart)

2.設置圖表數(shù)據(jù)

矩形圖主要構成部分有矩形、坐標軸和文字說明,我們需要的數(shù)據(jù)有圖表的數(shù)據(jù)、圖表寬度和矩形寬度

// 設置圖表數(shù)據(jù),圖表寬度和矩形寬度
 var chartData = this.chartData
 var width = this.width
 var barHeight = this.barHeight

3.添加畫布

要繪圖,首先需要的是一塊繪圖的畫布。D3提供了眾多的SVG圖形的生成器,我們在這里使用SVG畫布。選擇文檔中的svg元素,這里用到了$refs屬性

// 畫布
 var chartSvg = d3.select(this.$refs.baseBarChart)
 .attr('width', width)
 .attr('height', barHeight * chartData.length)

4.x軸比例尺

d3.scaleLinear(),線性比例尺,將一個連續(xù)的區(qū)間映射到另一區(qū)間。繪圖時如果直接根據(jù)給出的數(shù)據(jù)給矩形的寬度賦值,有很大的局限性。比如一組數(shù)據(jù)里有一個數(shù)值為2000,我們是不可能用2000個像素來代表矩形的寬度的,因為畫布沒有那么長。這個時候我們就需要把某一區(qū)域的值映射到另一區(qū)域,轉換的過程中大小關系不變。

// x軸比例尺
 var xScale = d3.scaleLinear()
 .domain([0, d3.max(chartData)])
 .range([0, width])

5.矩形和label文字的容器,用于添加元素
在有數(shù)據(jù)卻沒有足夠圖形元素的時候,可以使用以下鏈式方法添加足夠的元素:

selection.selectAll(element).data(data).enter().append(element)
// 矩形和label文字組合的容
var g = chartSvg.selectAll('g')
 .data(chartData)
 .enter().append('g')
 .attr('transform', function (d, i) { return 'translate(0,' + i * barHeight + ')' })

6.添加矩形和label文字

// 添加矩形
 g.append('rect')
 .attr('width', xScale)
 .attr('height', barHeight - 2)
 .attr('fill', 'green')
 // 添加label文字
 g.append('text')
 .attr('x', function (d) { return xScale(d) + 3 })
 .attr('y', barHeight - 10)
 .attr('dy', '0.3em')
 .attr('fill', 'red')
 .style('font-size', '12px')
 .text(function (d) { return d })

繪制后的圖形如下:

如何使用D3.js+Vue實現(xiàn)柱形圖 

使用該組件

怎么使用我們定義好的柱形圖組件呢,分3步走:

1. import導入

2.設置數(shù)據(jù)

3.通過屬性值傳遞給子組件

<base-bar-chart :chart-data="barChart.data" :width="barChart.width" :bar-height="barChart.barHeight"></base-bar-chart>
import BaseBarChart from '../components/base-bar-chart'
export default {
 name: 'BaseBarChartView',
 components: {
  BaseBarChart
 },
 data () {
  return {
   barChart: {
    data: [4, 6, 12, 10, 8, 1, 9],
    width: 540,
    barHeight: 20
   }
  }
 }
}

路由配置和數(shù)據(jù)請求

剩下的一部分就是各個頁面的vue-router路由配置和主頁的axios數(shù)據(jù)請求。

如何使用D3.js+Vue實現(xiàn)柱形圖

以上是“如何使用D3.js+Vue實現(xiàn)柱形圖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站標題:如何使用D3.js+Vue實現(xiàn)柱形圖
本文鏈接:http://aaarwkj.com/article42/igdpec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站收錄、關鍵詞優(yōu)化、響應式網(wǎng)站、網(wǎng)站導航、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
国内精品久久久久久2021| 国产精品视频不卡免费看| 国产91美女黄色在线观看| 日韩少妇一级淫片免费| 亚洲国产黄片在线播放| 欧美乱与老熟妇视频观看| 亚洲午夜精品毛片成人| 欧美日韩中文字幕精品视频| 午夜18禁毛片免费看| 亚洲欧美日韩成人在线| 欧美一区二区三区四区久久| 一卡二卡三卡四卡日韩| 九色国产一区二区三区| 国产精品乱码一区二区视频| 欧美一区二区国产精品日韩| 五月婷婷少妇中文字幕| 人妻在线中文字幕一区| 亚洲欧美日韩香蕉在线观看| 天天操天天射夜夜撸| 亚洲三级成人一区在线| 男人的天堂在线观看黄片| 国产在线一区二区三区不卡| 91在线视频麻豆国产| 国产亚洲美女在线视频视频| 欧美一区二区精品少妇| 热九九这里只有热九九 | 日本亚洲精品在线观看| 91精品啪在线观看国产日本| 91欧美日韩中在线视频| 中文字幕av一区二区人妻| 欧美精品一区二区精品久久| 亚洲情色精品国产一区| 妞干网视频这里只有精品| 一区二区三区四区四虎| 日本中文字幕乱码一区| 海角社区av在线播放| 久久精品噜噜噜成人av农村| 亚洲不卡免费在线视频| 日韩av手机在线不卡| 粉嫩在线一区二区懂色| 欧洲亚洲国产一区二区|