当前位置: 移动技术网 > IT编程>网页制作>CSS > 使用D3.js绘制顺化曲线图、坐标轴

使用D3.js绘制顺化曲线图、坐标轴

2018年12月03日  | 移动技术网IT编程  | 我要评论
使用d3.js绘制顺化曲线图、坐标轴

index.js

// 定义svg的宽度和高度

var width = 500,

height = 250,

margin = {left:50,top:30,right:20,bottom:20},

// 图表的宽度=svg的宽度减去margin

g_width = width - margin.left-margin.right,

g_height = height - margin.top - margin.bottom;

// svg

var svg = d3.select("#container")

.append("svg")

// 添加宽度和高度属性 width,height

.attr("width",width) //attribute

.attr("height",height)

var g = d3.select("svg").append("g")

// 设置x,y轴偏移量

.attr("transform","translate(" +margin.left+","+ margin.top +")")

var data = [1,3,5,7,8,4,3,7]

// 设置缩放

var scale_x = d3.scale.linear().domain([0,data.length-1]).range([0,g_width])

var scale_y = d3.scale.linear().domain([0,d3.max(data)]).range([g_height,0])

var line_generator = d3.svg.line()

// d表示传进来的数据 i表示数据的下标

.x(function(d,i){return scale_x(i);}) // 0,1,2,3

.y(function(d){return scale_y(d);}) // 1,3,5

// 去除线的棱角 使其顺滑

.interpolate("cardinal")

g

.append("path")

// d 是 path data的缩写 将data数据传人

.attr("d",line_generator(data)) // d = "m1,0l20,40l40,50l100,100l0,200"

// 生成坐标轴

var x_axis = d3.svg.axis().scale(scale_x),

// y轴在左侧

y_axis = d3.svg.axis().scale(scale_y).orient("left");

g.append("g")

.call(x_axis)

.attr("transform","translate(0,"+ g_height +")")

g.append("g")

.call(y_axis)

//添加坐标轴叙述

.append("text")

.text("price($)")

.attr("transform","rotate(-90)")

.attr("text-anchor","end")

.attr("dy","1em")

style.css

#container {

background: #ddd;

width: 500px;

height: 250px;

}

path {

fill:none;

stroke: #4682b4;

stroke-width:2;

}

/* 设置坐标样式 */

.domain,tick line {

stroke:gray;

stroke: width;

}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网