xxxxxxxxxx
<head>
<meta charset="utf-8">
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://d3js.org/d3-color.v1.min.js"></script>
<script src="https://d3js.org/d3-interpolate.v1.min.js"></script>
<script src="https://d3js.org/d3-scale-chromatic.v1.min.js"></script>
<title>Color hue</title>
<style>
body {
margin: 0;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
rect:first-child {
stroke-width: 0.5;
stroke: black;
}
#svg-container {
position: relative;
width: 100%;
overflow: hidden;
}
.svg-content-responsive {
position: absolute;
top: 0;
left: 0;
}
</style>
</head>
<body>
<div id="color"></div>
<script>
// Feel free to change or delete any of the code you see in this editor!
function getRatio(side) {
return (( margin[side] / width ) * 100 + 1) + "%";
}
const margin = {left: 5, top: 5, right: 5, bottom: 5},
width = 960,
height = 150,
marginRatio = {
left: getRatio("left"),
top: getRatio("top"),
right: getRatio("right"),
bottom: getRatio("bottom")
};
var color = d3.scaleOrdinal()
.domain(["yellow", "orange", "mint", "blue"])
.range(["#F1C414", "#D45728", "#18B899", "#2481BB"]);
const svg_color = d3.select("#color")
.append("div")
.attr("id", "svg-container")
.append("svg")
.style("padding", marginRatio.top + " " + marginRatio.right + " " + marginRatio.bottom + " " + marginRatio.left)
.attr("preserveAspectRatio", "xMinYMin meet")
.attr("viewBox", "0 0 " + ( width + margin.left + margin.right ) + " " + ( height + margin.top + margin.bottom ))
.attr("id", "svg-content-responsive");
svg_color.selectAll("rect")
.data(d3.range(4))
.enter()
.append("rect")
.attr("x", d3.scaleLinear().domain([0, 4]).range([40, 500]))
.attr("y", 20)
.attr("width", 75)
.attr("height", 75)
.attr("fill", function(d, i) { return color(i); });
</script>
</body>
https://d3js.org/d3.v4.min.js
https://d3js.org/d3-color.v1.min.js
https://d3js.org/d3-interpolate.v1.min.js
https://d3js.org/d3-scale-chromatic.v1.min.js