求示例代码
求课程示例代码
var width = 500,
height = 250,
margin = {left: 50, top: 30, right: 20, bottom: 20},
g_width = width - margin.left - margin.right,
g_height = height - margin.top - margin.bottom;
// 类似jq的链式调用
// 制作图中的线条
var svg = d3.select('#container')
.append("svg:svg")
// width,height
.attr('width', width)//attribute
.attr('height', height);
var g = svg.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var data = [1, 3, 5, 7, 8, 4, 3, 7];
// 放大
var scale_x = d3.scaleLinear()
.domain([0, data.length - 1])
.range([0, g_width]);
var scale_y = d3.scaleLinear()
.domain([0, d3.max(data)])
.range([g_height, 0]);// 切换坐标轴的朝向
var line_generator = d3.line()
.x(function (d, i) {
// d代表数据
// i代表下标
return scale_x(i);
})
.y(function (d) {
return scale_y(d);
})
.curve(d3.curveCatmullRom.alpha(0.5));
g.append('path').attr('d', line_generator(data));
// 制作坐标轴
var x_axis = d3.axisBottom(scale_x),
y_axis = d3.axisLeft(scale_y);
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");#container {
background: #ddd;
width: 500px;
height: 250px;
}
path {
fill: none;
stroke: #4682B4;
stroke-width: 2;
}
text {
fill: #000;
}
.domain,
.tick line {
stroke: gray;
}举报