坐标轴: 是可视化图表中常常出现的一种图形,由一些列线段和刻度组成。坐标轴在 SVG 中是没有现成的图形元素的,须要用其余的元素组合构成。D3 提供了坐标轴的组件,如此在 SVG 画布中绘制坐标轴变得像添加一个普通元素同样简单。app
- 坐标轴的组成dom
在 SVG 画布的预约义元素里,有六种基本图形:svg
另外,还有一种比较特殊,也是功能最强的元素:spa
画布中的全部图形,都是由以上七种元素组成。显然,这里面没有坐标轴 这种元素。所以,咱们须要用其余元素来组合成坐标轴,最终使其变为相似如下的形式:code
<g>
<!-- 第一个刻度 -->
<g>
<line></line> <!-- 第一个刻度的直线 -->
<text></text> <!-- 第一个刻度的文字 -->
</g>
<!-- 第二个刻度 -->
<g>
<line></line> <!-- 第二个刻度的直线 -->
<text></text> <!-- 第二个刻度的文字 -->
</g> ...... <!-- 坐标轴的轴线 -->
<path></path>
</g>
- 定义坐标轴orm
// 数据
var dataset = [2.5, 2.1, 1.7, 1.3, 0.9];
// 定义比例尺
var linear = d3.scale.linear()
.domain([0, d3.max(dataset)])
.range([0, 250]);
var axis = d3.svg.axis()
.scale(linear) // 指定比例尺
.orient("bottom") // 指定刻度的方向
.ticks(7); // 指定刻度的数量
- 在SVG中添加坐标轴blog
svg.append("g") .call(axis);
- 设定坐标轴的样式和位置form
<style> .axis path, .axis line{ fill: none; stroke: black; shape-rendering: crispEdges;
} .axis text { font-family: sans-serif; font-size: 11px;
} </style>
坐标轴的位置,能够经过 transform 属性来设定。一般在添加元素的时候就一并设定,写成以下形式:class
svg.append("g") .attr("class","axis") .attr("transform","translate(20,130)") .call(axis);
页面效果:可视化