d3.js v4入门之——坐标轴

预备知识

在svg画布预定义元素里有7种形状元素。画布上的所有图形都是由这7种元素组成。

  1. 矩形 <rect>
  2. 圆形 <circle>
  3. 椭圆 <ellipse>
  4. 线 <line>
  5. 折线 <polyline>
  6. 多边形 <polygon>
  7. 路径 <path>

D3中的坐标轴

无论方向如何,轴始终在原点渲染。要更改轴相对于图表的位置,请在包含元素上指定一个transform属性。

<!--
@author Semper_Fi
-->
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <script src="https://d3js.org/d3.v5.min.js"></script>
    <title></title>

</head>

<body>
    <svg id="svg" width="600" height="300" style="outline: 1px solid red;">
    </svg>
</body>
<script>
    var dataset = [100, 50, 10, 26, 18];

    var powerScale = d3.scalePow()
        .exponent(0.5) // 定义指数
        .domain([0, 100])   // 定义底数
        .range([0, 400]);    // 定义值域

    var rectHeight = 25;	//每个矩形所占的像素高度(包括空白)

    var svg = d3.select("#svg");
    svg.selectAll("rect")
        .data(dataset)
        .enter()
        .append("rect")
        .attr("x", 20)
        .attr("y", function (d, i) {
            return i * rectHeight;
        })
        .attr("width", function (d) {
            return powerScale(d);
        })
        .attr("height", rectHeight - 2)
        .attr("fill", "steelblue");
	// 指定刻度的方向,这个表示刻度在坐标轴下边。同类型的还有 d3.axisBottom d3.axisLeft d3.axisRight d3.axisTop
    var axis = d3.axisBottom() 
        .scale(powerScale)  //  绑定比例尺
        .ticks(2);  // 指定刻度数量

    svg.append("g")
        .attr("class", "axis")
        .attr("transform", "translate(20,130)") // 平移操作,2个参数,第一个参数是向右平移的像素,第二个是向下平移的像素。
        .call(axis);
</script>
</html>

效果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值