Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <meta name="description" content="">
- <meta name="author" content="">
- <title>CS498DV</title>
- <!-- Bootstrap core CSS -->
- <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
- <script src='https://d3js.org/d3.v5.min.js'></script>
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
- <style>
- .chart circle {fill: #69b3a2; stroke: black;}
- #tooltip {
- opacity: 0;
- position: absolute;
- text-align: left;
- width: 150px; height: 80px;
- background: white;
- border: solid;
- border-width: 1px;
- border-radius: 5px;
- }
- </style>
- </head>
- <body onload='init()'>
- <!-- Navigation -->
- <nav class="navbar navbar-expand-lg navbar-dark bg-dark static-top">
- <div class="container">
- <a class="navbar-brand" href="#">CS498 Data Visualization</a>
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon"></span>
- </button>
- <div class="collapse navbar-collapse" id="navbarResponsive">
- <ul class="navbar-nav ml-auto">
- <li class="nav-item">
- <a class="nav-link" href="https://github.com/rasterroo/CS498DV">Github</a>
- </li>
- </ul>
- </div>
- </div>
- </nav>
- <!-- Page Content -->
- <div class="container">
- <div class="row">
- <div class="col-lg-12 text-center">
- <h1 class="mt-5">2017 Automobile Data</h1>
- <svg class="chart" width=600 height=600></svg>
- <div id="tooltip"></div>
- <script>
- async function init() {
- const data = await d3.csv('https://flunky.github.io/cars2017.csv');
- var x = d3.scaleLog()
- .base(10)
- .domain([10,150])
- .range([0, 500]);
- var y = d3.scaleLog()
- .base(10)
- .domain([10,150])
- .range([500,0]);
- var tooltip = d3.select("#tooltip");
- d3.select('svg')
- .attr("width", 600)
- .attr("height", 600)
- .append("g")
- .attr("transform", "translate(50,50)")
- .selectAll('circle')
- .data(data)
- .enter()
- .append('circle')
- .attr('cx',function(d) {return x(d.AverageCityMPG);})
- .attr('cy',function(d) {return y(d.AverageHighwayMPG);})
- .attr('r', function(d) {return (2+parseInt(d.EngineCylinders))*1.5;})
- .style("opacity", 0.4)
- .on("mouseover", function(d,i) {
- tooltip
- .style("opacity",1)
- .style("left", (d3.mouse(this)[0]+350) + "px")
- .style("top", (d3.mouse(this)[1]+120) + "px")
- .html("Make : "+d.Make);
- })
- .on("mouseout", function() { tooltip.style("opacity",0) });
- xs = d3.scaleLog()
- .base(10)
- .domain([10,150])
- .range([0, 500]);
- ys = d3.scaleLog()
- .base(10)
- .domain([10,150])
- .range([500,0]);
- d3.select('svg').append('g')
- .attr("transform", "translate(50,50)")
- .call(d3.axisLeft(ys).tickValues([10,20,50,100]).tickFormat(d3.format("~s")));
- d3.select('svg').append('g')
- .attr("transform", "translate(50,550)")
- .call(d3.axisBottom(xs).tickValues([10,20,50,100]).tickFormat(d3.format("~s")));
- }
- </script>
- </div>
- </div>
- </div>
- <!-- Bootstrap core JavaScript -->
- <script src="vendor/jquery/jquery.slim.min.js"></script>
- <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement