JSFiddle - React, Tailwind, and code Playground

HTML

<div>
</div>

JavaScript

function det(m) {
	var size = Math.sqrt(m.length);
	if (size % 1 !== 0) {
    return null;
  }
  if (size === 2) {
    return m[0] * m[3] - m[1] * m[2];
  }
  return m.slice(0, size).reduce(function(t, v, i) {
  	var sub = [];
    for (var r = size; r < m.length; r += size) {
    	sub = sub.concat(
        m.slice(r, r + i), 
        m.slice(r + i + 1, r + size)
      );
    }
    return t + (i % 2 === 0 ? -1 : 1) * v * det(sub);
  }, 0);
}

function pol(m) {
	var size = Math.sqrt(m.length);
  if (size % 1 !== 0) {
    return null;
  }
  return function(x) {
  	return det(m.map(
    	function(val, i) {
      	return val - ( Math.floor(i / size) === i % size ? x : 0);
      }
    ));
  }
}

function plot(pol, cont, range = 10, size = 500) {
	var step = ( range * 2 ) / size;
	var points = [];
	for(var x = 0; x < size; x ++) {
  	points.push(x, ',', pol(x * step - range) + size / 2);
  }
	cont.innerHTML = 
  	'<svg viewBox="0 0 ' + size + ' ' + size + '">' +
      '<line stroke="#ddd" stroke-width="1"' + 
      	'x1="0" y1="'+ size / 2 +'" ' + 
        'x2="'+ size +'" y2="'+ size / 2 + '"/>' +  
      '<line stroke="#ddd" stroke-width="1"' + 
      	'x1="'+ size / 2 +'" y1="0" ' + 
        'x2="'+ size / 2 + '" y2="'+ size +'"/>' + 
      '<polyline fill="none" stroke="#0074d9" stroke-width="2"' +
     		'points="' + points.join(' ') + '"/>"' +
		'</svg>'
}

var matrix = [
  1, 2, 6,
	1, 3, 4,
  0, 4, 5
]; 

var pc = pol(matrix);

plot(pc, document.querySelector('div'));