使用D3制作统计图表、线性图表、水平柱状图表、饼图 -- (一)线性图表
2017-04-23 17:21
519 查看
index.html(图表页面)
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>D3</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container"></div>
</body>
<script src="https://d3js.org/d3.v3.js"></script>
<script src="index.js"></script>
</html>
index.js(JS代码)
var data = [0,34.45,45.534,556,76,87,234,234]
generateLineChart(data,"#container",800,250,"时间(天)","销售总价(¥)","svg_price","g_price") //D3生成线性图表
/**
* @desc D3生成线性图表
*/
function generateLineChart(data,container,width,height,x_text,y_text,svg_class,g_class) {
// var width = 500 //contianer元素宽度
// var height = 250 //contianer元素高度
var margin = {left:50,top:30,right:20,bottom:20} //contianer元素边距
var g_width = width - margin.left - margin.right //svg元素高度
var g_height = height - margin.top - margin.bottom //svg元素宽度
//在id为contanier的容器里添加svg元素,并设置宽度和高度
var svg = d3.select(container)
.append("svg:svg")
.attr("class",svg_class)
.attr("width", width+50)
.attr("height", height)
//获得添加后的svg元素,设置边距
var g = d3.select("."+svg_class)
.append("g")
.attr("class", g_class)
.attr("transform", "translate("+margin.left+","+margin.top+")")
//指定x,y缩放比例
var x_scale = d3.scale.linear()
.domain([0, data.length-1])
.range([0, g_width])
var y_scale = d3.scale.linear()
.domain([0, d3.max(data)])
.range([g_height, 0])
//d元素属性值x,y坐标
var line_generator = d3.svg.line()
.x(function(d,i){ return x_scale(i); })
.y(function(d){ return y_scale(d); })
// .interpolate("cardinal") //是否曲线
//给svg元素添加path并设置d属性
d3.select("."+g_class)
.append("path")
.attr("d", line_generator(data))
//添加横轴坐标轴
var x_axis = d3.svg.axis().scale(x_scale),
y_axis = d3.svg.axis().scale(y_scale).orient("left")
//添加x坐标轴并设置文字描述
g.append("g")
.call(x_axis)
.attr("transform", "translate(0,"+g_height+")")
.append("text")
.text(x_text)
.attr("transform", "translate("+g_width+",0)")
//添加y坐标轴并设置文字描述
g.append("g")
.call(y_axis)
.append("text")
.text(y_text)
.attr("transform", "translate(-15,-15)")
// .attr("transform", "rotate(-90)")
// .attr("text-anchor", "end")
// .attr("dy", "1em")
}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>D3</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container"></div>
</body>
<script src="https://d3js.org/d3.v3.js"></script>
<script src="index.js"></script>
</html>
index.js(JS代码)
var data = [0,34.45,45.534,556,76,87,234,234]
generateLineChart(data,"#container",800,250,"时间(天)","销售总价(¥)","svg_price","g_price") //D3生成线性图表
/**
* @desc D3生成线性图表
*/
function generateLineChart(data,container,width,height,x_text,y_text,svg_class,g_class) {
// var width = 500 //contianer元素宽度
// var height = 250 //contianer元素高度
var margin = {left:50,top:30,right:20,bottom:20} //contianer元素边距
var g_width = width - margin.left - margin.right //svg元素高度
var g_height = height - margin.top - margin.bottom //svg元素宽度
//在id为contanier的容器里添加svg元素,并设置宽度和高度
var svg = d3.select(container)
.append("svg:svg")
.attr("class",svg_class)
.attr("width", width+50)
.attr("height", height)
//获得添加后的svg元素,设置边距
var g = d3.select("."+svg_class)
.append("g")
.attr("class", g_class)
.attr("transform", "translate("+margin.left+","+margin.top+")")
//指定x,y缩放比例
var x_scale = d3.scale.linear()
.domain([0, data.length-1])
.range([0, g_width])
var y_scale = d3.scale.linear()
.domain([0, d3.max(data)])
.range([g_height, 0])
//d元素属性值x,y坐标
var line_generator = d3.svg.line()
.x(function(d,i){ return x_scale(i); })
.y(function(d){ return y_scale(d); })
// .interpolate("cardinal") //是否曲线
//给svg元素添加path并设置d属性
d3.select("."+g_class)
.append("path")
.attr("d", line_generator(data))
//添加横轴坐标轴
var x_axis = d3.svg.axis().scale(x_scale),
y_axis = d3.svg.axis().scale(y_scale).orient("left")
//添加x坐标轴并设置文字描述
g.append("g")
.call(x_axis)
.attr("transform", "translate(0,"+g_height+")")
.append("text")
.text(x_text)
.attr("transform", "translate("+g_width+",0)")
//添加y坐标轴并设置文字描述
g.append("g")
.call(y_axis)
.append("text")
.text(y_text)
.attr("transform", "translate(-15,-15)")
// .attr("transform", "rotate(-90)")
// .attr("text-anchor", "end")
// .attr("dy", "1em")
}
相关文章推荐
- 使用D3制作统计图表、线性图表、水平柱状图表、饼图 -- (三)竖直柱状图表
- 使用D3制作统计图表、线性图表、水平柱状图表、饼图 -- (五)饼状图表
- 使用D3制作统计图表、线性图表、水平柱状图表、饼图 -- (四)水平柱状图表+坐标轴
- Android制作曲线、柱状图、饼形等图表——使用AChartEngine
- Android制作曲线、柱状图、饼形等图表——使用AChartEngine
- 使用HelloCharts开源图表库制作柱状图
- 使用D3制作图表(一)
- 使用delphi制作统计图表,delphi PageControl选项卡标题变色
- axure中使用HighCharts模板制作统计图表
- Android制作曲线、柱状图、饼形等图表——使用AChartEngine
- JFreechart 制作柱状图、饼图、折线图、仪表图等统计图的使用方法
- 使用amCharts绘制统计图表(柱状图、折线图、3D图)
- 使用Silverlight Toolkit绘制图表(上)--柱状图
- iOS 使用 Core Plot 绘制统计图表入门
- ZedGraph统计图表控件使用
- iOS 使用 Core Plot 绘制统计图表入门[转]
- iOS 使用 Core Plot 绘制统计图表入门[转]
- 使用Visifire制作透明图表
- php中使用FusionCharts制作嵌入网页图表
- C# 页面显示简易的统计图表(使用image控件实现)