d3基礎知識

h5:

<svg ?style="background-color: #fff;" id="data_area" height="300" width="450"></svg>

Angular ts文件:

import * as d3 from 'd3';

? ngOnInit(): void {

? ? // this.setD3Circle();

? ? this.setMargin();

? }


? setD3Circle() {

? ? var svg = d3.select('#data_area')

? ? ? .append("g") // 添加標尺

? ? ? .attr("transform", "translate(30, 30)"); // 平移圖像

? ? var x = d3.scaleLinear()

? ? ? .domain([0, 100])

? ? ? .range([0, 400]);

? ? var y = d3.scaleLinear()

? ? ? .domain([100, 0])

? ? ? .range([200, 0]);

? ? svg.append('g').attr("transform", "translate(0," + 200 + ")").call(d3.axisBottom(x));

? ? svg.append('g').call(d3.axisLeft(y));

? ? // 以百分比設置圖片尺寸

? ? svg.append("circle")

? ? ? ? .attr("cx", x(10)).attr("cy", 100).attr("r", 40).style("fill", "blue");

? ? svg.append("circle")

? ? ? ? .attr("cx", x(50)).attr("cy", 100).attr("r", 40).style("fill", "red");

? ? svg.append("circle")

? ? ? ? .attr("cx", x(100)).attr("cy", 100).attr("r", 40).style("fill", "green");

? ? // svg.append('circle').attr('cx', 3).attr('cy', 3).attr('r', 40).style('fill', 'blue');

? ? // svg.append('circle').attr('cx', 120).attr('cy', 70).attr('r', 40).style('fill', 'red');

? ? // svg.append('circle').attr('cx', 300).attr('cy', 100).attr('r', 40).style('fill', 'green');

? }

運行結果如下圖所示:

? setMargin(){

? ? // 設置圖形的尺寸和邊距

? ? var margin = { top: 10, right: 40, bottom: 30, left: 30 },

? ? width = 450 - margin.left - margin.right,

? ? height = 300 - margin.top - margin.bottom;

? ? // 將svg對象附加到頁面主體

? ? var svg = d3.select("#data_area")

? ? ? .append("g") // 添加標尺

? ? ? .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); // 平移圖像

? ? var data = [{ x: 10, y: 20 }, { x: 40, y: 90 }, { x: 80, y: 50 }]

? ? // 創(chuàng)建x軸比例尺

? ? var x = d3.scaleLinear()

? ? ? .domain([0, 100])

? ? ? .range([0, width]);

? ? svg.append('g')

? ? ? .attr("transform", "translate(0," + height + ")")

? ? ? .call(d3.axisBottom(x));

? ? // 創(chuàng)建y軸比例尺

? ? var y = d3.scaleLinear()

? ? ? .domain([0, 100])

? ? ? .range([height, 0]);

? ? svg.append('g')

? ? ? .call(d3.axisLeft(y));

? ? svg.selectAll("whatever")

? ? ? .data(data)

? ? ? .enter()

? ? ? .append("circle")

? ? ? .attr("cx", function (d) { return x(d.x) })

? ? ? .attr("cy", function (d) { return y(d.y) })

? ? ? .attr("r", 5)

? }

運行結果如下圖所示:

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Data Visualization with D3 D3: SVG中的jQurey 1. Add Documen...
    王策北閱讀 873評論 0 2
  • D3 的全稱是(Data-Driven Documents),顧名思義可以知道是一個被數(shù)據(jù)驅(qū)動的文檔。聽名字有點抽...
    蛋蛋的憂傷123456閱讀 318評論 0 0
  • D3 D3.js,也叫 D3,表示數(shù)據(jù)驅(qū)動文檔。 D3 是一個在瀏覽器里創(chuàng)建動態(tài)可視化數(shù)據(jù)的 JavaScript...
    HJSD閱讀 423評論 0 0
  • 參考:w3school[https://www.w3school.com.cn/w3c/w3c_other.asp...
    jeneen1129閱讀 1,041評論 0 1
  • 先記錄一下 堆棧圖 .axis path, .axis line { fill:...
    奇怪的雙子座閱讀 559評論 0 0

友情鏈接更多精彩內(nèi)容