D3.js función de densidad de contorno()

La función d3.contourDensity() se usa para construir una nueva función de estimador de densidad con la configuración predeterminada. Una función de estimador de densidad estima la densidad para el conjunto de datos dado.

Sintaxis:

d3.contourDensity();

Parámetros: Esta función no toma ningún parámetro.

Valor de retorno: esta función devuelve una función.

A continuación se dan algunos ejemplos de la función dada anteriormente.

Ejemplo 1:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content=" 
    width=device-width, initial-scale=1.0"> 
  
    <script type="text/javascript"
    src="https://d3js.org/d3.v4.min.js"> 
    </script> 
    <script src="https://d3js.org/d3-contour.v1.min.js">
    </script>
</head> 
<body> 
    <h1 style="color:green">GeeksforGeeks</h1>
      
    <script> 
        // append the svg object to the body.
        var svg = d3.select("body")
        .append("svg")
        .attr("width", 530)
        .attr("height", 480)
        .append("g")
        .attr("transform",
        "translate(" + 40 + ", " + 0 + ")");
  
        // Read data
        d3.csv("./data.csv", function(data) {
              
            var y = d3.scaleLinear()
            .domain([5, 30])
            .range([ 450, 10 ]);
  
            var x = d3.scaleLinear()
            .domain([5, 22])
            .range([ 0, 460]);
  
  
            svg.append("g")
            .call(d3.axisLeft(y));
          
            svg.append("g")
            .attr("transform","translate(0, " + 450 + ")")
            .call(d3.axisBottom(x));
  
            var densityData = d3.contourDensity()
            .y(function(d) { return y(d.y); })
            .x(function(d) { return x(d.x); })(data)
  
            svg.selectAll("path")
            .data(densityData)
            .enter()
            .append("path")
            .attr("d", d3.geoPath())
            .attr("fill", "none")
            .attr("stroke", "green")
        });
  
        // Data for csv file
        // x, y, group
        // 11.45, 14.2, H
        // 11.1, 14.2, H
        // 11.9, 9.9, H
        // 11.6, 14.5, H
        // 11.1, 11.7, H
        // 14.7, 9.5, H
        // 7.9, 11.6, H
        // 14.7, 11.7, H
        // 11.45, 14.2, H
        // 12.1, 9.2, H
        // 7.5, 11, H
        // 14.5, 14.5, H
        // 11.45, 9.7, H
        // 14.45, 11.6, H
        // 11.5, 7.6, H
        // 11, 11.45, H
        // 14.7, 12, H
        // 11.7, 9.7, H
        // 9.6, 9, H
        // 12, 11, H
        // 11.45, 14.5, H
        // 11.11, 14.6, H
        // 12.7, 11.11, H
        // 11, 12.2, H
        // 11, 14.9, H
        // 9.5, 11.7, H
        // 11.7, 14.7, H
        // 11.9, 14.5, H
        // 14, 14.5, H
        // 7.11, 11, H
        // 11.11, 11.45, H
        // 11, 14.2, H
        // 14.7, 11.7, H
        // 14.5, 11.9, H
    </script> 
</body> 
</html> 

Producción:

Ejemplo 2:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content=" 
    width=device-width, initial-scale=1.0"> 
  
    <script type="text/javascript"
    src="https://d3js.org/d3.v4.min.js"> 
    </script> 
    <script src="https://d3js.org/d3-contour.v1.min.js">
    </script>
</head> 
  
<body> 
    <h1 style="color:green">GeeksforGeeks</h1>
      
    <script> 
        // Append the svg object to the body.
        var svg = d3.select("body")
        .append("svg")
        .attr("width", 530)
        .attr("height", 480)
        .append("g")
        .attr("transform",
        "translate(" + 40 + ", " + 0 + ")");
  
        // Read data
        d3.csv("./data.csv", function(data) {
              
            var y = d3.scaleLinear()
            .domain([5, 30])
            .range([ 450, 10 ]);
  
            var x = d3.scaleLinear()
            .domain([5, 22])
            .range([ 0, 460]);
  
            svg.append("g")
            .call(d3.axisLeft(y));
          
            svg.append("g")
            .attr("transform","translate(0, " + 450 + ")")
            .call(d3.axisBottom(x));
  
            var densityData = d3.contourDensity()
            .y(function(d) { return y(d.y); })
            .bandwidth(44)
            .x(function(d) { return x(d.x); })(data)
  
            svg.selectAll("path")
            .data(densityData)
            .enter()
            .append("path")
            .attr("d", d3.geoPath())
            .attr("fill", "green")
            .attr("stroke", "black")
        });
  
        // Data for csv file
        // x, y, group
        // 11.45, 14.2, H
        // 11.1, 14.2, H
        // 11.9, 9.9, H
        // 11.6, 14.5, H
        // 11.1, 11.7, H
        // 14.7, 9.5, H
        // 7.9, 11.6, H
        // 14.7, 11.7, H
        // 11.45, 14.2, H
        // 12.1, 9.2, H
        // 7.5, 11, H
        // 14.5, 14.5, H
        // 11.45, 9.7, H
        // 14.45, 11.6, H
        // 11.5, 7.6, H
        // 11, 11.45, H
        // 14.7, 12, H
        // 11.7, 9.7, H
        // 9.6, 9, H
        // 12, 11, H
        // 11.45, 14.5, H
        // 11.11, 14.6, H
        // 12.7, 11.11, H
        // 11, 12.2, H
        // 11, 14.9, H
        // 9.5, 11.7, H
        // 11.7, 14.7, H
        // 11.9, 14.5, H
        // 14, 14.5, H
        // 7.11, 11, H
        // 11.11, 11.45, H
        // 11, 14.2, H
        // 14.7, 11.7, H
        // 14.5, 11.9, H
    </script> 
</body> 
</html> 

Producción:

Publicación traducida automáticamente

Artículo escrito por TARuN y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *