function n(val, smin, smax, dmin, dmax) { return Math.floor((val - smin)/(smax - smin)*(dmax - dmin) + dmin); } fetch("https://gist.githubusercontent.com/borgar/31c1e476b8e92a11d7e9/raw/0fae97dab6830ecee185a63c1cee0008f6778ff6/pulsar.csv") .then(r=>r.text()) .then(r=>{ a = r.split("\n").map(v=>v.split(",").map(w=>parseFloat(w))); max = Math.max(...a.map(v=>Math.max(...v))); min = Math.min(...a.map(v=>Math.min(...v))); s = a.map(v=>v.map(w=>String.fromCodePoint(n(w, min, max, 0x100, 0x17f))).join("")).join("\\\\\n"); console.log(s); })