D3 Bar Graph Project

Developer
Size
3,011 Kb
Views
8,096

How do I make an d3 bar graph project?

Graph created for freeCodeCamp using D3.. What is a d3 bar graph project? How do you make a d3 bar graph project? This script and codes were developed by Zac Clemans on 14 January 2023, Saturday.

D3 Bar Graph Project Previews

D3 Bar Graph Project - Script Codes HTML Codes

<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>D3 Bar Graph Project</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <div class="graph-container"></div> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/d3/3.5.16/d3.min.js'></script> <script src="js/index.js"></script>
</body>
</html>

D3 Bar Graph Project - Script Codes CSS Codes

body { font-family: Arial;
}
.graph-container { margin: 100px auto 0 auto; width: 900px; border: 2px solid #787878; border-radius: 10px;
}
.tooltip { position: absolute; padding: 5px; color: white; width: 160px; background: #000000; border-radius: 10px; opacity: .7;
}

D3 Bar Graph Project - Script Codes JS Codes

var url = "https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json";
var months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
];
$.ajax({ url: url, dataType: 'json', success: function(d) { var data = d.data; margins = { top: 30, right: 20, bottom: 70, left: 70 }; var height = 500 - margins.top - margins.bottom, width = 900 - margins.left - margins.right, barWidth = width / data.length; var timeParse = d3.time.format("%Y-%m-%d").parse; var yScale = d3.scale.linear() .domain([0, d3.max(data, function(d) { return d[1]; })]) .range([height, 0]); var xScaleTime = d3.time.scale() .domain([timeParse(data[0][0]), timeParse(data[data.length - 1][0])]) .rangeRound([0, width]); var graphContainer = d3.select('.graph-container') .append('svg') .attr('width', width + margins.left + margins.right) .attr('height', height + margins.top + margins.bottom) .append('g') .attr('transform', 'translate(' + margins.left + ',' + margins.top + ')'); var barsContainer = graphContainer.selectAll('rect') .data(data) .enter() .append('rect'); var div = d3.select('body').append('div') .attr('class', 'tooltip') .style('display', 'none'); var barsAttr = barsContainer .attr('width', barWidth) .attr('height', function(d) { return height - yScale(d[1]); }) .attr('x', function(d) { return xScaleTime(timeParse(d[0])); }) .attr('y', function(d) { return yScale(d[1]); }) .style('fill', '#025928') .on('mouseover', function(d) { div .html("<b>Date:</b> " + months[timeParse(d[0]).getMonth()] + " " + timeParse(d[0]).getFullYear() + "<br/><b>GDP</b>: $" + d[1] + " billion") .style('display', 'inline') .style('top', (d3.event.pageY - 45) + 'px') .style('left', function() { if (d3.event.pageX < 170) { return (d3.event.pageX) + 'px'; } else { return (d3.event.pageX - 170) + 'px'; } }); d3.select(this) .style('fill', '#3C8C30'); }) .on('mouseout', function(d) { div.style('display', 'none'); d3.select(this) .style('fill', '#025928'); }); graphContainer.append('text') .attr('x', width / 2) .attr('y', margins.top / 2) .attr('text-anchor', 'middle') .style('font-weight', 'bold') .style('font-size', '24px') .text("USA GDP by Quarter"); var xAxis = d3.svg.axis() .scale(xScaleTime) .orient('bottom') .ticks(d3.time.years, 5) .tickFormat(d3.time.format("%Y")); var xAxisContainer = graphContainer.append('g') .attr('transform', 'translate(0,' + height + ')') .call(xAxis); xAxisContainer.selectAll('text') .style("text-anchor", "end") .attr("dx", "-.8em") .attr("dy", "-.2em") .attr("transform", "rotate(-90)" ); xAxisContainer.selectAll('path') .style({fill: 'none', stroke: 'black'}); xAxisContainer.selectAll('line') .style({stroke: 'black'}); var yAxis = d3.svg.axis() .scale(yScale) .orient('left'); var yAxisContainer = graphContainer.append('g') .call(yAxis); yAxisContainer.append('text') .attr('transform', 'rotate(-90)') .attr('text-anchor', 'end') .attr('y', 20) .text('Value in billions ($)') yAxisContainer.selectAll('path') .style({fill: 'none', stroke: 'black'}); yAxisContainer.selectAll('line') .style({stroke: 'black'}); }
});
D3 Bar Graph Project - Script Codes
D3 Bar Graph Project - Script Codes
Home Page Home
Developer Zac Clemans
Username thalpha
Uploaded January 14, 2023
Rating 3
Size 3,011 Kb
Views 8,096
Do you need developer help for D3 Bar Graph Project?

Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!

Zac Clemans (thalpha) Script Codes
Create amazing video scripts with AI!

Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!