Skip to content

Instantly share code, notes, and snippets.

@pcostesi
Created August 27, 2019 17:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pcostesi/227d39ca6174ba3dcaeeaf4eeae3d84e to your computer and use it in GitHub Desktop.
Save pcostesi/227d39ca6174ba3dcaeeaf4eeae3d84e to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>d3js</title>
<script src="https://d3js.org/d3.v5.min.js"></script>
<style id="jsbin-css">
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 0px;
margin: 5px;
color: white;
height: 12px;
}
svg {
width: 100%;
}
svg rect {
fill: steelblue;
color: black;
rx: 4px;
}
svg rect:hover {
fill: black;
color: steelblue;
rx: 4px;
}
svg rect text {
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div id="parrafos"></div>
<div class="chart"></div>
<div id="svg">
<svg viewBox="0 0 300 100" xmlns="http://www.w3.org/2000/svg" stroke="red" fill="grey">
</svg>
</div>
</script>
<script id="jsbin-javascript">
"use strict";
var color = "#7BAAF7";
var datos = [
{ "platform": "Mobile Games", "earnings": 538308 },
{ "platform": "Console Games", "earnings": 334596 },
{ "platform": "PC Games", "earnings": 317755 }
];
var maxEarnings = datos.reduce(function (t, d) { return Math.max(t, d.earnings); }, 0);
var data2txt = function (d, i) { return ((i + 1) + ". " + d.platform + " " + d.earnings.toLocaleString()); };
d3.select("div#parrafos")
.selectAll("p")
.data(datos)
.enter().append("p")
.attr("class", "p1")
.text(data2txt);
d3.select("div.chart")
.selectAll("div")
.data(datos).enter().append("div")
.style("width", function (d) { return d.earnings / maxEarnings * 100 + "%"; })
.text(function (d) { return d.platform; })
.attr("title", function (d) { return "u$s " + d.earnings.toLocaleString(); });
d3.select("svg")
.selectAll("svg")
.data(datos)
.enter()
.append("rect")
.text(function (d) { return d.platform; })
.attr("height", function (d) { return d.earnings / maxEarnings * 100 + "%"; })
.attr("width", "100px")
.attr("x", function (d, i) { return (i * 110 + "px"); })
.attr("y", function (d) { return 100 - d.earnings / maxEarnings * 100 + "%"; });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDO0FBRXhCLElBQU0sS0FBSyxHQUFHO0lBQ1osRUFBQyxVQUFVLEVBQUMsY0FBYyxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUM7SUFDN0MsRUFBQyxVQUFVLEVBQUMsZUFBZSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUM7SUFDOUMsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUM7Q0FDMUMsQ0FBQztBQUVGLElBQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUF2QixDQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRXZFLElBQU0sUUFBUSxHQUFHLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLEVBQUcsQ0FBQyxHQUFHLENBQUMsV0FBSyxDQUFDLENBQUMsUUFBUSxTQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUUsRUFBeEQsQ0FBd0QsQ0FBQztBQUdwRixFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztLQUN0QixTQUFTLENBQUMsR0FBRyxDQUFDO0tBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUNYLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7S0FDbkIsSUFBSSxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUM7S0FDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBRWpCLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0tBQ25CLFNBQVMsQ0FBQyxLQUFLLENBQUM7S0FDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDakMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxXQUFXLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxRSxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsUUFBUSxFQUFWLENBQVUsQ0FBQztLQUNyQixJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDO0FBRWhGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ1QsS0FBSyxFQUFFO0tBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNkLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxRQUFRLEVBQVYsQ0FBVSxDQUFDO0tBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFsQyxDQUFrQyxDQUFDO0tBQ3ZELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0tBQ3RCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBRyxDQUFDLEdBQUcsR0FBRyxRQUFJLEVBQWQsQ0FBYyxDQUFDO0tBQ25DLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBQyxXQUFXLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBeEMsQ0FBd0MsQ0FBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29sb3IgPSBcIiM3QkFBRjdcIjtcblxuY29uc3QgZGF0b3MgPSBbXG4gIHtcInBsYXRmb3JtXCI6XCJNb2JpbGUgR2FtZXNcIixcImVhcm5pbmdzXCI6NTM4MzA4fSxcbiAge1wicGxhdGZvcm1cIjpcIkNvbnNvbGUgR2FtZXNcIixcImVhcm5pbmdzXCI6MzM0NTk2fSxcbiAge1wicGxhdGZvcm1cIjpcIlBDIEdhbWVzXCIsXCJlYXJuaW5nc1wiOjMxNzc1NX1cbl07XG5cbmNvbnN0IG1heEVhcm5pbmdzID0gZGF0b3MucmVkdWNlKCh0LCBkKSA9PiBNYXRoLm1heCh0LCBkLmVhcm5pbmdzKSwgMCk7XG5cbmNvbnN0IGRhdGEydHh0ID0gKGQsIGkpID0+IGAke2kgKyAxfS4gJHtkLnBsYXRmb3JtfSAke2QuZWFybmluZ3MudG9Mb2NhbGVTdHJpbmcoKX1gO1xuXG5cbmQzLnNlbGVjdChcImRpdiNwYXJyYWZvc1wiKVxuICAuc2VsZWN0QWxsKFwicFwiKVxuICAuZGF0YShkYXRvcylcbiAgLmVudGVyKCkuYXBwZW5kKFwicFwiKVxuICAuYXR0cihcImNsYXNzXCIsXCJwMVwiKVxuICAudGV4dChkYXRhMnR4dClcblxuZDMuc2VsZWN0KFwiZGl2LmNoYXJ0XCIpXG4gIC5zZWxlY3RBbGwoXCJkaXZcIilcbiAgLmRhdGEoZGF0b3MpLmVudGVyKCkuYXBwZW5kKFwiZGl2XCIpXG4gIC5zdHlsZShcIndpZHRoXCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuZWFybmluZ3MvbWF4RWFybmluZ3MgKiAxMDAgKyBcIiVcIjsgfSlcbiAgLnRleHQoZCA9PiBkLnBsYXRmb3JtKVxuICAuYXR0cihcInRpdGxlXCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIFwidSRzIFwiICsgZC5lYXJuaW5ncy50b0xvY2FsZVN0cmluZygpOyB9ICk7XG5cbmQzLnNlbGVjdChcInN2Z1wiKVxuICAuc2VsZWN0QWxsKFwic3ZnXCIpXG4gIC5kYXRhKGRhdG9zKVxuICAgIC5lbnRlcigpXG4gICAgLmFwcGVuZChcInJlY3RcIilcbiAgICAudGV4dChkID0+IGQucGxhdGZvcm0pXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgZCA9PiBkLmVhcm5pbmdzL21heEVhcm5pbmdzICogMTAwICsgXCIlXCIpXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCBcIjEwMHB4XCIpXG4gICAgLmF0dHIoXCJ4XCIsIChkLCBpKSA9PiBgJHtpICogMTEwfXB4YClcbiAgICAuYXR0cihcInlcIiwgZCA9PiAxMDAgLSBkLmVhcm5pbmdzL21heEVhcm5pbmdzICogMTAwICsgXCIlXCIgKSJdfQ==
</script>
<script id="jsbin-source-css" type="text/css">
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 0px;
margin: 5px;
color: white;
height: 12px;
}
svg {
width: 100%;
}
svg rect {
fill: steelblue;
color: black;
rx: 4px;
}
svg rect:hover {
fill: black;
color: steelblue;
rx: 4px;
}
svg rect text {
height: 100%;
width: 100%;
}</script>
<script id="jsbin-source-javascript" type="text/javascript">
const color = "#7BAAF7";
const datos = [
{"platform":"Mobile Games","earnings":538308},
{"platform":"Console Games","earnings":334596},
{"platform":"PC Games","earnings":317755}
];
const maxEarnings = datos.reduce((t, d) => Math.max(t, d.earnings), 0);
const data2txt = (d, i) => `${i + 1}. ${d.platform} ${d.earnings.toLocaleString()}`;
d3.select("div#parrafos")
.selectAll("p")
.data(datos)
.enter().append("p")
.attr("class","p1")
.text(data2txt)
d3.select("div.chart")
.selectAll("div")
.data(datos).enter().append("div")
.style("width", function(d) { return d.earnings/maxEarnings * 100 + "%"; })
.text(d => d.platform)
.attr("title", function(d) { return "u$s " + d.earnings.toLocaleString(); } );
d3.select("svg")
.selectAll("svg")
.data(datos)
.enter()
.append("rect")
.text(d => d.platform)
.attr("height", d => d.earnings/maxEarnings * 100 + "%")
.attr("width", "100px")
.attr("x", (d, i) => `${i * 110}px`)
.attr("y", d => 100 - d.earnings/maxEarnings * 100 + "%" )
</script></body>
</html>
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 0px;
margin: 5px;
color: white;
height: 12px;
}
svg {
width: 100%;
}
svg rect {
fill: steelblue;
color: black;
rx: 4px;
}
svg rect:hover {
fill: black;
color: steelblue;
rx: 4px;
}
svg rect text {
height: 100%;
width: 100%;
}
"use strict";
var color = "#7BAAF7";
var datos = [
{ "platform": "Mobile Games", "earnings": 538308 },
{ "platform": "Console Games", "earnings": 334596 },
{ "platform": "PC Games", "earnings": 317755 }
];
var maxEarnings = datos.reduce(function (t, d) { return Math.max(t, d.earnings); }, 0);
var data2txt = function (d, i) { return ((i + 1) + ". " + d.platform + " " + d.earnings.toLocaleString()); };
d3.select("div#parrafos")
.selectAll("p")
.data(datos)
.enter().append("p")
.attr("class", "p1")
.text(data2txt);
d3.select("div.chart")
.selectAll("div")
.data(datos).enter().append("div")
.style("width", function (d) { return d.earnings / maxEarnings * 100 + "%"; })
.text(function (d) { return d.platform; })
.attr("title", function (d) { return "u$s " + d.earnings.toLocaleString(); });
d3.select("svg")
.selectAll("svg")
.data(datos)
.enter()
.append("rect")
.text(function (d) { return d.platform; })
.attr("height", function (d) { return d.earnings / maxEarnings * 100 + "%"; })
.attr("width", "100px")
.attr("x", function (d, i) { return (i * 110 + "px"); })
.attr("y", function (d) { return 100 - d.earnings / maxEarnings * 100 + "%"; });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDO0FBRXhCLElBQU0sS0FBSyxHQUFHO0lBQ1osRUFBQyxVQUFVLEVBQUMsY0FBYyxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUM7SUFDN0MsRUFBQyxVQUFVLEVBQUMsZUFBZSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUM7SUFDOUMsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUM7Q0FDMUMsQ0FBQztBQUVGLElBQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUF2QixDQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRXZFLElBQU0sUUFBUSxHQUFHLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLEVBQUcsQ0FBQyxHQUFHLENBQUMsV0FBSyxDQUFDLENBQUMsUUFBUSxTQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUUsRUFBeEQsQ0FBd0QsQ0FBQztBQUdwRixFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztLQUN0QixTQUFTLENBQUMsR0FBRyxDQUFDO0tBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUNYLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7S0FDbkIsSUFBSSxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUM7S0FDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBRWpCLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0tBQ25CLFNBQVMsQ0FBQyxLQUFLLENBQUM7S0FDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDakMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBQyxXQUFXLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxRSxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsUUFBUSxFQUFWLENBQVUsQ0FBQztLQUNyQixJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDO0FBRWhGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ1QsS0FBSyxFQUFFO0tBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNkLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxRQUFRLEVBQVYsQ0FBVSxDQUFDO0tBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsUUFBUSxHQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFsQyxDQUFrQyxDQUFDO0tBQ3ZELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0tBQ3RCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBRyxDQUFDLEdBQUcsR0FBRyxRQUFJLEVBQWQsQ0FBYyxDQUFDO0tBQ25DLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBQyxXQUFXLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBeEMsQ0FBd0MsQ0FBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29sb3IgPSBcIiM3QkFBRjdcIjtcblxuY29uc3QgZGF0b3MgPSBbXG4gIHtcInBsYXRmb3JtXCI6XCJNb2JpbGUgR2FtZXNcIixcImVhcm5pbmdzXCI6NTM4MzA4fSxcbiAge1wicGxhdGZvcm1cIjpcIkNvbnNvbGUgR2FtZXNcIixcImVhcm5pbmdzXCI6MzM0NTk2fSxcbiAge1wicGxhdGZvcm1cIjpcIlBDIEdhbWVzXCIsXCJlYXJuaW5nc1wiOjMxNzc1NX1cbl07XG5cbmNvbnN0IG1heEVhcm5pbmdzID0gZGF0b3MucmVkdWNlKCh0LCBkKSA9PiBNYXRoLm1heCh0LCBkLmVhcm5pbmdzKSwgMCk7XG5cbmNvbnN0IGRhdGEydHh0ID0gKGQsIGkpID0+IGAke2kgKyAxfS4gJHtkLnBsYXRmb3JtfSAke2QuZWFybmluZ3MudG9Mb2NhbGVTdHJpbmcoKX1gO1xuXG5cbmQzLnNlbGVjdChcImRpdiNwYXJyYWZvc1wiKVxuICAuc2VsZWN0QWxsKFwicFwiKVxuICAuZGF0YShkYXRvcylcbiAgLmVudGVyKCkuYXBwZW5kKFwicFwiKVxuICAuYXR0cihcImNsYXNzXCIsXCJwMVwiKVxuICAudGV4dChkYXRhMnR4dClcblxuZDMuc2VsZWN0KFwiZGl2LmNoYXJ0XCIpXG4gIC5zZWxlY3RBbGwoXCJkaXZcIilcbiAgLmRhdGEoZGF0b3MpLmVudGVyKCkuYXBwZW5kKFwiZGl2XCIpXG4gIC5zdHlsZShcIndpZHRoXCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuZWFybmluZ3MvbWF4RWFybmluZ3MgKiAxMDAgKyBcIiVcIjsgfSlcbiAgLnRleHQoZCA9PiBkLnBsYXRmb3JtKVxuICAuYXR0cihcInRpdGxlXCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIFwidSRzIFwiICsgZC5lYXJuaW5ncy50b0xvY2FsZVN0cmluZygpOyB9ICk7XG5cbmQzLnNlbGVjdChcInN2Z1wiKVxuICAuc2VsZWN0QWxsKFwic3ZnXCIpXG4gIC5kYXRhKGRhdG9zKVxuICAgIC5lbnRlcigpXG4gICAgLmFwcGVuZChcInJlY3RcIilcbiAgICAudGV4dChkID0+IGQucGxhdGZvcm0pXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgZCA9PiBkLmVhcm5pbmdzL21heEVhcm5pbmdzICogMTAwICsgXCIlXCIpXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCBcIjEwMHB4XCIpXG4gICAgLmF0dHIoXCJ4XCIsIChkLCBpKSA9PiBgJHtpICogMTEwfXB4YClcbiAgICAuYXR0cihcInlcIiwgZCA9PiAxMDAgLSBkLmVhcm5pbmdzL21heEVhcm5pbmdzICogMTAwICsgXCIlXCIgKSJdfQ==
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment