D3 Bar Graph Project
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 - 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'}); }
});
Developer | Zac Clemans |
Username | thalpha |
Uploaded | January 14, 2023 |
Rating | 3 |
Size | 3,011 Kb |
Views | 8,096 |
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!
Name | Size |
Hero arrow test | 1,482 Kb |
Camper News | 3,157 Kb |
D3 Map Project | 3,119 Kb |
Personal Portfolio | 3,289 Kb |
D3 Force-directed Graph Project | 3,348 Kb |
Markdown Previewer | 3,771 Kb |
Pomodoro Timer | 3,706 Kb |
Random Chuck Norris Joke Generator | 2,586 Kb |
D3 Scatterplot Project | 3,150 Kb |
OOLO Calculator - Vanilla JS | 5,734 Kb |
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!
Name | Username | Size |
A Pen by Alexandru Pora | Axpro | 1,615 Kb |
Svg animation draw | SzymonDziewonski | 5,545 Kb |
Experiments with Vertical Centering | KatieK2 | 3,924 Kb |
A Pen by Jess | Jessamyne | 5,100 Kb |
Wikipedia Viewer | Thomasvaeth | 2,549 Kb |
A Pen by Kenny Mark | Kennymark | 5,574 Kb |
CSS Link Icons with jQuery Titles | Nicwinn | 2,312 Kb |
SVG Transform vs CSS Transform | AmeliaBR | 4,175 Kb |
React Markdown Previewer | C0d0er | 3,190 Kb |
Scarlett Johansson Tribute Page | Diomed | 3,233 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!