File size: 34,049 Bytes
7d6537e 2b8db60 7d6537e 6007cd8 7d6537e 6007cd8 7d6537e 6007cd8 7d6537e 6007cd8 7d6537e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 |
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>fdaudens/hf-blog-posts</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" />
<script src="https://unpkg.com/deck.gl@latest/dist.min.js"></script>
<script src="https://unpkg.com/[email protected]"></script>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
background: #ffffff;
}
#deck-container {
width: 100vw;
height: 100vh;
}
#deck-container canvas {
z-index: 1;
background: #ffffff;
}
.deck-tooltip {
font-size: 0.8em;
font-family: Roboto;
font-weight: 300;
color: #000000 !important;
background-color: #ffffffaa !important;
border-radius: 12px;
box-shadow: 2px 3px 10px #aaaaaa44;
max-width: 25%;
}
#loading {
width: 100%;
height: 100%;
top: 0px;
left: 0px;
position: absolute;
display: block;
z-index: 99
}
#loading-image {
position: absolute;
top: 45%;
left: 47.5%;
z-index: 100
}
#title-container {
position: absolute;
top: 0;
left: 0;
margin: 16px;
padding: 12px;
border-radius: 16px;
line-height: 0.95;
z-index: 2;
font-family: Roboto;
color: #000000;
background: #ffffffaa;
box-shadow: 2px 3px 10px #aaaaaa44;
}
#search-container{
position: absolute;
left: -16px;
margin: 16px;
padding: 12px;
border-radius: 16px;
z-index: 2;
font-family: Roboto;
color: #000000;
background: #ffffffaa;
width: fit-content;
box-shadow: 2px 3px 10px #aaaaaa44;
}
input {
margin: 2px;
padding: 4px;
border-radius: 8px;
color: #000000;
background: #ffffffdd;
border: 1px solid #ddddddff;
transition: 0.5s;
outline: none;
}
input:focus {
border: 2px solid #555;
}
</style>
</head>
<body>
<div id="loading">
<img id="loading-image" src="https://i.gifer.com/ZKZg.gif" alt="Loading..." width="5%"/>
</div>
<div id="title-container">
<span style="font-family:Roboto;font-size:36pt;color:#000000">
fdaudens/hf-blog-posts
</span><br/>
<span style="font-family:Roboto;font-size:18pt;color:#777777">
Data map for the entire <a href='https://huggingface.co/datasets/fdaudens/hf-blog-posts/viewer/default/train' target='_blank'>dataset</a> (381 rows) using the column 'Headline'
</span>
<div id="search-container">
<input autocomplete="off" type="search" id="search" placeholder="🔍">
</div>
</div>
<div id="deck-container">
</div>
</body>
<script type="module">
import { ArrowLoader } from 'https://cdn.jsdelivr.net/npm/@loaders.gl/[email protected]/+esm'
import { JSONLoader } from 'https://cdn.jsdelivr.net/npm/@loaders.gl/[email protected]/+esm'
const pointDataBase64 = "QVJST1cxAAD/////0AUAABAAAAAAAAoADgAGAAUACAAKAAAAAAEEABAAAAAAAAoADAAAAAQACAAKAAAASAQAAAQAAAABAAAADAAAAAgADAAEAAgACAAAACAEAAAEAAAAEAQAAHsiaW5kZXhfY29sdW1ucyI6IFt7ImtpbmQiOiAicmFuZ2UiLCAibmFtZSI6IG51bGwsICJzdGFydCI6IDAsICJzdG9wIjogMzgxLCAic3RlcCI6IDF9XSwgImNvbHVtbl9pbmRleGVzIjogW3sibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogbnVsbCwgInBhbmRhc190eXBlIjogInVuaWNvZGUiLCAibnVtcHlfdHlwZSI6ICJvYmplY3QiLCAibWV0YWRhdGEiOiB7ImVuY29kaW5nIjogIlVURi04In19XSwgImNvbHVtbnMiOiBbeyJuYW1lIjogIngiLCAiZmllbGRfbmFtZSI6ICJ4IiwgInBhbmRhc190eXBlIjogImZsb2F0MzIiLCAibnVtcHlfdHlwZSI6ICJmbG9hdDMyIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJ5IiwgImZpZWxkX25hbWUiOiAieSIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXQzMiIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiciIsICJmaWVsZF9uYW1lIjogInIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiZyIsICJmaWVsZF9uYW1lIjogImciLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYiIsICJmaWVsZF9uYW1lIjogImIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYSIsICJmaWVsZF9uYW1lIjogImEiLCAicGFuZGFzX3R5cGUiOiAidWludDgi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32Df37nf39+f347f359gjqnfjqmp399gjoyfYI6Oqd+f346pn46puY7fn6mfqY6Z39+Ouanfqamp347fjo7f39+OjN9gjoyp35nf36mpjN+GqYzf35+pjt+p346fjqmG346f39+MYKlgjI5g34yGjt+On9+pjp9ghoyO39/fjo6Ojp9gjo6OjKmO39+M32Dfhp+pn6mOjJ+OjmCO32COqY6fjI6Mjt/f35mM346fjI6fjrmfYGDfn45gjN+OYJ+OjmCZYN/fuZnfuZmO34zfjGCMuY6Zjt+fYIyfuZ+5346M35+Mn5m539+5n4yGYI6Mjt+Ojt+O35/fmd9g39+Omd/fn5/f39/fjt+OjpmMmY7f35mZ35mZjt+Z37nfjpm5jpmGjpmOmY7fjpnf347fn5+f35+Ojt+fjpmOn99gjt+5n9/fn5+Zn47fjo6Gn46OjpmO37mf346Gn46Zjo6OuYaGn5+fAAAA4+OsUePjguNR6uOsrFFRzeOsrGqsrM2szerNzWrNzc1RzazNzVHqrOPNrOPjzc3qrChR6qys481RzazjUazjaqzNUeNR46zPzc2sauPN4+PjzazNrKzNzc2sKM3qrCjjzc/NzePjKM2C4yjNzVHjrM3jzaxRrOOCzaxRzc0o6uPqKKzqzSiCrM2sUc3jrFHqgiiszc3NrKysrFHqrKysKOOszc0ozerNglHjUeOsKFGsrOqszeqs46xRKKworM3Nzc8ozaxRKKxRrGpR6urNUazqKM2s6lGsrOrP6s3Nas/Nas+szSjNKOooaqzPrM1R6ihRalFqzawozVEoUc9qzc1qUSiC6qworM2srM2szVHNz83qzc2sz83NUVHNzc3NrM2srM8oz6zNzc/Pzc/PrM3PzWrNrM9qrM+CrM+sz6zNrM/NzazNUVFRzVGsrM1RrM+sUc3qrM1qUc3NUVHPUazNrKyCUaysrM+szWpRzayCUazPrKysaoKCUVFRAAAAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0AAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAA/////wAAAAAQAAAADAAUAAYACAAMABAADAAAAAAABAA8AAAAKAAAAAQAAAABAAAA4AUAAAAAAACwAQAAAAAAAHATAAAAAAAAAAAAAAAAAAAAAAoADAAAAAQACAAKAAAASAQAAAQAAAABAAAADAAAAAgADAAEAAgACAAAACAEAAAEAAAAEAQAAHsiaW5kZXhfY29sdW1ucyI6IFt7ImtpbmQiOiAicmFuZ2UiLCAibmFtZSI6IG51bGwsICJzdGFydCI6IDAsICJzdG9wIjogMzgxLCAic3RlcCI6IDF9XSwgImNvbHVtbl9pbmRleGVzIjogW3sibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogbnVsbCwgInBhbmRhc190eXBlIjogInVuaWNvZGUiLCAibnVtcHlfdHlwZSI6ICJvYmplY3QiLCAibWV0YWRhdGEiOiB7ImVuY29kaW5nIjogIlVURi04In19XSwgImNvbHVtbnMiOiBbeyJuYW1lIjogIngiLCAiZmllbGRfbmFtZSI6ICJ4IiwgInBhbmRhc190eXBlIjogImZsb2F0MzIiLCAibnVtcHlfdHlwZSI6ICJmbG9hdDMyIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJ5IiwgImZpZWxkX25hbWUiOiAieSIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXQzMiIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiciIsICJmaWVsZF9uYW1lIjogInIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiZyIsICJmaWVsZF9uYW1lIjogImciLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYiIsICJmaWVsZF9uYW1lIjogImIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiYSIsICJmaWVsZF9uYW1lIjogImEiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OCIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAic2VsZWN0ZWQiLCAiZmllbGRfbmFtZSI6ICJzZWxlY3RlZCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4IiwgIm1ldGFkYXRhIjogbnVsbH1dLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJweWFycm93IiwgInZlcnNpb24iOiAiMTcuMC4wIn0sICJwYW5kYXNfdmVyc2lvbiI6ICIyLjIuMiJ9AAAAAAYAAABwYW5kYXMAAAcAAAAoAQAA7AAAALwAAACQAAAAZAAAADgAAAAEAAAABP///wAAAQIQAAAAHAAAAAQAAAAAAAAACAAAAHNlbGVjdGVkAAAAAGL///8IAAAANP///wAAAQIQAAAAFAAAAAQAAAAAAAAAAQAAAGEAAACK////CAAAAFz///8AAAECEAAAABQAAAAEAAAAAAAAAAEAAABiAAAAsv///wgAAACE////AAABAhAAAAAUAAAABAAAAAAAAAABAAAAZwAAANr///8IAAAArP///wAAAQIQAAAAGAAAAAQAAAAAAAAAAQAAAHIABgAIAAQABgAAAAgAAADY////AAABAxAAAAAUAAAABAAAAAAAAAABAAAAeQAAAMr///8AAAEAEAAUAAgABgAHAAwAAAAQABAAAAAAAAEDEAAAABgAAAAEAAAAAAAAAAEAAAB4AAYACAAGAAYAAAAAAAEA+AUAAEFSUk9XMQ==";
const pointDataBuffer = fflate.strToU8(atob(pointDataBase64), true);
const pointData = await loaders.parse(pointDataBuffer, ArrowLoader);
const hoverDataBase64 = "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";
const hoverDataBuffer = fflate.strToU8(atob(hoverDataBase64), true);
const unzippedHoverData = fflate.gunzipSync(hoverDataBuffer);
const hoverData = await loaders.parse(unzippedHoverData, ArrowLoader);
const labelDataBase64 = "H4sIAEr8IGcC/5XUy27aQBQG4FexZg3WnDlzZdcqiRoJ0qrKru5iAlNnVDOmtkmTVH33Hl+4JKy6AgzYn//zH3/7w57ZYg655VJqVFyZGXthC8i10BK0tihmrPIPoWIL9uF2XoYUGt+FTYZXRSr9NmSb8BSqercNqWMz1sbXwBaC5w6VMMaBoRM0bKFhxkq2UPTyQOdHOWOejsq/s5HA8/7nxkk9AZQyILXj2p0BdrvqJaYyu37ehaYr0m1qY/nYtVlXF+ku7BtfZXeh+103P9sixZTdxOTTOpxgkAM3lqMCowaYwAFm5QgD8Q5G2WhQqIw1I42ogmuFUpH2ZPt4/fV+/uDbsCGJ7wbK0qdy78tQpC9NvQ5tS/YirepNqNoTyeZ8kPRJlX02aqLAO4rMjeaKA4GOFKCcnZUo8UT5tC/LPqUbvw6ZTwSKFFETqn5wRerC+jHVVV3GcKYwuTUCke7SuIEDqAePMQPH6XcakUtrlFXItZhmBpw4Vsj+LwfMcrnKrp98tfddrFNB49hk98FvKQefKJu3vRE5l85xQAtyVAg1KNyhOPpiPsR2DrAfRp8J5gI5ERARToyVXz/GFLJl8E0axvB518VtfJ1Y930o8df+PJKLrgB3YyRuwCB/a6FiIGiqse5L9TLgUDrFDXd4VpXVvupiFftuVP9bFpkTR1oKGcxoGqdk7UCS6iIeWiSN2plpSnREGCmcpIxPpCmMvjVXIeyKdMgpGwFF+lE3VKi2Cw2F1fjYf3lkgctRKCdRHNsD414BHxdLXtbHOqSqaHryHGDGKorbgTwbHF0rtXTxbWjmRZoWjD6HNWF6IL0vEj2E4vpsdnBYKsDRYUaGOe7U93/n0Fns/AQAAA==";
const labelDataBuffer = fflate.strToU8(atob(labelDataBase64), true);
const unzippedLabelData = fflate.gunzipSync(labelDataBuffer);
const labelData = await loaders.parse(unzippedLabelData, JSONLoader);
const DATA = {src: pointData.data, length: pointData.data.x.length}
const container = document.getElementById('deck-container');
const pointLayer = new deck.ScatterplotLayer({
id: 'dataPointLayer',
data: DATA,
getPosition: (object, {index, data}) => {
return [data.src.x[index], data.src.y[index]];
},
getRadius: 0.1,
getFillColor: (object, {index, data}) => {
return [
data.src.r[index],
data.src.g[index],
data.src.b[index],
180
]
},
getLineColor: (object, {index, data}) => {
return [
data.src.r[index],
data.src.g[index],
data.src.b[index],
32
]
},
getLineColor: [250, 250, 250, 128],
getLineWidth: 0.001,
highlightColor: [170, 0, 0, 187],
lineWidthMaxPixels: 8,
lineWidthMinPixels: 0.1,
radiusMaxPixels: 24,
radiusMinPixels: 0.01,
radiusUnits: "common",
lineWidthUnits: "common",
autoHighlight: true,
pickable: true,
stroked: true
});
const labelLayer = new deck.TextLayer({
id: "textLabelLayer",
data: labelData,
pickable: false,
getPosition: d => [d.x, d.y],
getText: d => d.label,
getColor: d => [d.r, d.g, d.b],
getSize: d => d.size,
sizeScale: 1,
sizeMinPixels: 18,
sizeMaxPixels: 36,
outlineWidth: 8,
outlineColor: [238, 238, 238, 221],
getBackgroundColor: [255, 255, 255, 64],
getBackgroundPadding: [15, 15, 15, 15],
background: true,
characterSet: "auto",
fontFamily: "Roboto",
fontWeight: 900,
lineHeight: 0.95,
fontSettings: {"sdf": true},
getTextAnchor: "middle",
getAlignmentBaseline: "center",
lineHeight: 0.95,
elevation: 100,
// CollideExtension options
collisionEnabled: true,
getCollisionPriority: d => d.size,
collisionTestProps: {
sizeScale: 3,
sizeMaxPixels: 36 * 2,
sizeMinPixels: 18 * 2
},
extensions: [new deck.CollisionFilterExtension()],
});
const deckgl = new deck.DeckGL({
container: container,
initialViewState: {
latitude: -0.30952063,
longitude: -2.271556,
zoom: 6.0808719180459825
},
controller: true,
layers: [pointLayer, labelLayer],
getTooltip: ({index}) => hoverData.data.hover_text[index]
});
document.getElementById("loading").style.display = "none";
function selectPoints(item, conditional) {
var layerId;
if (item) {
for (var i = 0; i < DATA.length; i++) {
if (conditional(i)) {
DATA.src.selected[i] = 1;
} else {
DATA.src.selected[i] = 0;
}
}
layerId = 'selectedPointLayer' + item;
} else {
for (var i = 0; i < DATA.length; i++) {
DATA.src.selected[i] = 1;
}
layerId = 'dataPointLayer';
}
const selectedPointLayer = pointLayer.clone(
{
id: layerId,
data: DATA,
getFilterValue: (object, {index, data}) => data.src.selected[index],
filterRange: [1, 2],
extensions: [new deck.DataFilterExtension({filterSize: 1})]
}
);
deckgl.setProps(
{layers:
[selectedPointLayer].concat(deckgl.props.layers.slice(1,))
}
);
}
const search = document.getElementById("search");
search.addEventListener("input", (event) => {
const search_term = event.target.value.toLowerCase();
selectPoints(search_term, (i) => hoverData.data.hover_text[i].toLowerCase().includes(search_term));
}
);
</script>
</html> |