//example en javasacript
const zlib = require('zlib');
const { createCanvas } = require('canvas'); // Para simular un entorno gráfico (Canvas)
const { plot } = require('nodeplotlib');
// Función para inflar los datos
function inflate(data) {
return zlib.inflateRawSync(data);
}
// Cadena codificada en Base64
const codedString = `1dR/
TJR1HAfwR7gZ1Khj0hg5mjhFs0bEkkyK5/t
+bsYYNHDXGDpsmCwZ61xMkYyBJ5oSkBikYlCQEKJBnXnKjzjiDCUwKIiQoA6C
+GFQGBpKndUbPLfrVrZ+/OOze++53fP9Pp/
Pvb7P85WkmcNFmT1J2TzrBb8wCyBJxcxFXL8289t2jc6yJNjqcTDYvLInWGO4U/bV
+MsuXavlsfjN8khqphwdUiA3qyvkoJ46uaKkVfbWWeScwAl5Zn5NnItIbFaLZX5eYjDXRxR
cuU88FRMg3MwrxZnFGpGWGSYemdCKCW2MKK+OE+u9dcIrPUl0DKfy
+k6xMHoPx2SJnrocjssTeT75HFsowncXc3ypUI2Vc06lMEUc57yTYquxhnNNws/
rtMgMOytGUluExtAmigY6hNXjvIgO6RXGbX3CvWJQ6Cwjolk9Lnw1F0V60mVhOXJVBPV
YeW8JLxY5obxaha72uVCNuSBAdQfWe7shJ/AumCLcMRY/
D17pdyOkwBNbjV4obZ2PjmFvzBhemrcQQ0sWoTvIF+cilqJ+wzIYkh9ASZYfDhT5I
+NEAFKaHsam3kDETqyA1jkIT3g
+jkfvl8EP7tVq4L5xFZxTQjC1NxQXDoeh99STaGuJgNmyGsZJLcrmRuHQPdHI9luLNCU
GiVFPIy4hFlFpzyA0Nw6PlT2LB2vj4dOWAI+B53Db1CZMuyZi3Hsz
+h5KQvuqZDSu2YYqXQqO7UhF4f7taOrU8/47UDuazho7UWndxTq7Uazew1oZyF30Mutl
4qUVWayZjRfCX2HdvUiIzWHtfVi35VXWz0VkRh57eA1K4X72cQDLDQfZSz6WNh5iP69jfn
cBeyqE2/gb7OvN2Wdu2vUtuh1mfyW0K2WPb9OvjH0eoWE5ez1Kx2Ps9x1aVrDnSnq
+y77fo6kBOUeP0/
V9pJtO0NaILe0n6XsKG4eqaFyNtdM1dP4A4W51tDZB9qmn94cIWN5AczMWh56m
+0fwXNdI+zO4PfEs/
ZtwbdfHXINmTOS3cB3OYaDiE65FK75oaON6fEqzz2jWTrMOmn1Os06addHsPM26afYlz
Xpo1kuzr2j2Nc0sNOujWT/
NvqHZAM0GafYtzYZoNkyzEZqN0uwCzb6j2RjNxmn2Pc1+mH1Hp11/
pNkkzS7R7DLNfqLZFM2u0OwqzaZp9jPNfqGZlWbXaPYrzX7jdUlp6pSUxjVzFLNljlK/
wUmpHXVSqnTOinHSWTEkq5RKq8q2R/ybQy//MZJtjxG26G0pZhqYflsk/jc1ru9F/
rYIJpKJtcvztugdknGT7HPIzcbeiOP99Xa1b8S+r0i7CLv4O2SBQ9R2kRzSL/48DX+R4r
+J/h9E/M+R/kMcn6lbNbfG8Ts=`; // Tu cadena base64
// Decodificar los datos Base64
const decodedData = Buffer.from(codedString, 'base64');
// Inflar los datos
const inflatedDecodedData = inflate(decodedData);
// Convertir a un array de tipo Float32
const inflatedDecodedDataAsFloat = new Float32Array(inflatedDecodedData.buffer);
// Normalizar los datos
const normalizedData = Array.from(inflatedDecodedDataAsFloat).map(value => {
if (!isFinite(value) || isNaN(value)) {
return 0; // Sustituir valores no válidos
}
return value;
});
// Encontrar el valor mínimo y máximo
const min = Math.min(...normalizedData);
const max = Math.max(...normalizedData);
// Escalar los datos para ajustarlos a un rango adecuado
const scaledData = normalizedData.map(value => (value - min) / (max - min));
plot([{ x: [...Array(scaledData.length).keys()], y: scaledData }]);