D3.js+Vue 를 사용 하여 간단 한 기둥 그림 을 실현 합 니 다.
설명 하 다.
프로젝트 구축
vue-cli 를 사용 하여 단일 페이지 를 만 듭 니 다.
# vue-cli
$ npm install --global vue-cli
# "webpack"
$ vue init webpack d3-vue
# , !
$ cd d3-vue
$ npm run dev
D3 설치(최신 v5 버 전):$ npm install d3 --save
D3 도입:$ import * as d3 from 'd3'
간단 한 도 표를 실현 하 다.1.Vue 에서 dom 요 소 를 가 져 오기
vue 에 서 는 탭 에 ref 속성 을 추가 한 다음 js 에서 this.$refs 를 이용 하여 이 dom 요 소 를 조작 할 수 있 습 니 다.
<template>
<div>
<h3> </h3>
<svg ref="baseBarChart" class="base-bar-chart"></svg>
</div>
</template>
// ...
var chartSvg = d3.select(this.$refs.baseBarChart)
2.도표 데이터 설정직사각형 그림 의 주요 구성 부분 은 직사각형,좌표 축 과 문자 설명 이 있 고 우리 가 필요 로 하 는 데 이 터 는 도표 의 데이터,도표 의 너비 와 사각형 의 너비 가 있다.
// ,
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.scale Linear(),선형 비례 척 은 하나의 연속 구간 을 다른 구간 에 투사 한다.그림 을 그 릴 때 제 시 된 데이터 에 따라 직사각형의 너비 에 값 을 부여 하면 한계 가 크다.예 를 들 어 한 그룹의 데이터 에 2000 개의 수치 가 있 는데 우 리 는 2000 개의 픽 셀 로 사각형 의 너 비 를 대표 할 수 없다.왜냐하면 캔버스 가 그렇게 길지 않 기 때문이다.이 럴 때 우 리 는 특정한 지역 의 값 을 다른 지역 에 투사 하고 전환 하 는 과정 에서 크기 관 계 는 변 하지 않 는 다.
// x
var xScale = d3.scaleLinear()
.domain([0, d3.max(chartData)])
.range([0, width])
5.사각형 과 label 텍스트 의 용기,요소 추가 에 사용데이터 가 있 지만 충분 한 도형 요소 가 없 을 때 다음 과 같은 체인 방법 으로 충분 한 요 소 를 추가 할 수 있 습 니 다.
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 })
그림%1 개의 캡 션 을 편 집 했 습 니 다.이 구성 요소 사용 하기
우리 가 정의 한 기둥 그림 구성 요 소 를 어떻게 사용 합 니까?3 단계 로 나 누 어 갑 니 다.
1.import 가 져 오기
2.데이터 설정
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
}
}
}
}
루트 설정 과 데이터 요청나머지 부분 은 각 페이지 의 vue-router 경로 설정 과 홈 페이지 의 axios 데이터 요청 입 니 다.
프로젝트 주소:d3-vue
총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 D3.js+Vue 를 사용 하여 간단 한 기둥 그림 을 실현 하 는 것 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 님 께 서 신속하게 답 해 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
D3.js+Vue 를 사용 하여 간단 한 기둥 그림 을 실현 합 니 다.최근 Vue 프로젝트 에서 d3.js 를 사용 하여 자주 사용 하 는 도 표를 봉인 하려 고 합 니 다.여기에 자신 이 프로젝트 를 구축 하 는 과정 과 간단 한 기둥 그림 을 실현 하 는 것 을 기록 하 세 요.D...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.