Skip to content

Instantly share code, notes, and snippets.

@bengolder
Created February 8, 2014 20:04
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bengolder/8889384 to your computer and use it in GitHub Desktop.
Save bengolder/8889384 to your computer and use it in GitHub Desktop.
var w = 800;
var h = 500;
var margin = {top: 20, right: 30, bottom: 30, left: 40};
var chart_width = w - margin.left - margin.right;
var chart_height = h - margin.top - margin.bottom;
var svg = d3.select(".chart")
.append("svg")
.attr("width", w)
.attr("height", h);
var chart = svg.append("g")
.attr("class", "chart")
.attr("transform",
"translate("+margin.left+","+margin.top+")");
d3.csv("5feb2014.csv", csvAccessor, loaded);
function csvAccessor(d){
var datetime_fmt = d3.time.format("%x %X")
var datetime = datetime_fmt.parse( d["Date"] + " " + d["Time"] )
return {
datetime: datetime,
category: d.Category,
item: d.Item,
qty: +d.Quantity,
price_point: d["Price Point Name"],
sales: +d["Gross Sales"],
};
}
function loaded(error, rows){
// this may need to be bucketed
var timeExtents = d3.extent(
rows, function(d){
return d.datetime;});
var x = d3.time.scale()
.domain(timeExtents)
.range([0, chart_width]);
// sales
var y = d3.scale.linear()
.domain( d3.extent(rows, function (d){
return d.sales;
}))
.range([chart_height, 10]);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom");
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
var bars = chart.selectAll( "rect" )
.data( rows )
.enter().append("rect")
.attr("x", function(d){
var value = x(d.datetime);
return value;
})
.attr("y", function(d){
return chart_height - y(d.sales);})
.attr("width", 5)
.attr("height", function(d){
return y(d.sales);
});
}
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Sample Chart</title>
</head>
<body>
<div class="chart"></div>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script type="text/javascript" src="chart.js">
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment