當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


d3.js density.cellSize()用法及代碼示例

density.cellSize()函數用於設置密度估計器函數的像元大小。如果給定了像元大小,則此函數設置單個像元的大小。如果未給出像元的大小,則它將返回等於4的當前像元大小。請注意,像元越小,輪廓多邊形中就會出現更多的細節。

用法:

d3.contourDensity.cellSize([cellSize]);

參數:此函數采用上麵給出的和下麵描述的一個參數。

  • cellSize:它需要一個定義單元格大小的數字。

返回值:此函數不返回任何內容。

注意:請先創建文件“data.csv”,然後再執行代碼。



下麵給出了一些density.cellSize()函數的示例。

範例1:

HTML

<!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 + ", " + -80 + ")"); 
  
        // read data 
        d3.csv("./data.csv", function(data) { 
              
        var y = d3.scaleLinear() 
            .domain([2, 30]) 
            .range([ 300, 100 ]); 
  
        var x = d3.scaleLinear() 
            .domain([2, 22]) 
            .range([ 0, 200]); 
  
  
        svg.append("g") 
        .call(d3.axisLeft(y)); 
          
        svg.append("g") 
            .attr("transform", "translate(0, " + 300 + ")") 
            .call(d3.axisBottom(x)); 
  
        var density= d3.contourDensity() 
            .y(function(d) { return y(d.y); }) 
            .x(function(d) { return x(d.x); }) 
            // Use of cellSize() Function 
            .cellSize(100) 
            (data) 
  
        svg.selectAll("path") 
            .data(density) 
            .enter() 
            .append("path") 
            .attr("d", d3.geoPath()) 
            .attr("fill", "none") 
            .attr("stroke", "green") 
        }); 
  
        // Data for csv file 
        // x, y, group 
        // 9.45, 14.14, H 
        // 9.1, 14.14, H 
        // 9.9, 9.9, H 
        // 9.6, 14.5, H 
        // 9.1, 9.7, H 
        // 14.7, 9.5, H 
        // 7.9, 9.6, H 
        // 14.7, 9.7, H 
        // 9.45, 14.14, H 
        // 12.1, 9.14, H 
        // 7.5, 9, H 
        // 14.5, 14.5, H 
        // 9.45, 9.7, H 
        // 14.45, 9.6, H 
        // 9.5, 7.6, H 
        // 9, 9.45, H 
        // 14.7, 12, H 
        // 9.7, 9.7, H 
        // 9.6, 9, H 
        // 12, 9, H 
        // 9.45, 14.5, H 
        // 9.9, 14.6, H 
        // 12.7, 9.9, H 
        // 9, 12.14, H 
        // 9, 14.9, H 
        // 9.5, 9.7, H 
        // 9.7, 14.7, H 
        // 9.9, 14.5, H 
        // 14, 14.5, H 
        // 7.9, 9, H 
        // 9.9, 9.45, H 
        // 9, 14.14, H 
        // 14.7, 9.7, H 
        // 14.5, 9.9, H 
    </script>  
</body> 
</html> 

輸出:

範例2:

HTML

<!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 + ", " + -80 + ")"); 
  
        // read data 
        d3.csv("./data.csv", function(data) { 
              
        var y = d3.scaleLinear() 
            .domain([2, 30]) 
            .range([ 300, 100 ]); 
  
        var x = d3.scaleLinear() 
            .domain([2, 22]) 
            .range([ 0, 200]); 
  
  
        svg.append("g") 
        .call(d3.axisLeft(y)); 
          
        svg.append("g") 
            .attr("transform", "translate(0, " + 300 + ")") 
            .call(d3.axisBottom(x)); 
  
        var density= d3.contourDensity() 
            .y(function(d) { return y(d.y); }) 
            .x(function(d) { return x(d.x); }) 
            .bandwidth(15) 
            // Use of cellSize() Function 
            .cellSize(50) 
            (data) 
  
        svg.selectAll("path") 
            .data(density) 
            .enter() 
            .append("path") 
            .attr("d", d3.geoPath()) 
            .attr("fill", "none") 
            .attr("stroke", "green") 
        }); 
  
        // Data for csv file 
        // x, y, group 
        // 9.45, 14.14, H 
        // 9.1, 14.14, H 
        // 9.9, 9.9, H 
        // 9.6, 14.5, H 
        // 9.1, 9.7, H 
        // 14.7, 9.5, H 
        // 7.9, 9.6, H 
        // 14.7, 9.7, H 
        // 9.45, 14.14, H 
        // 12.1, 9.14, H 
        // 7.5, 9, H 
        // 14.5, 14.5, H 
        // 9.45, 9.7, H 
        // 14.45, 9.6, H 
        // 9.5, 7.6, H 
        // 9, 9.45, H 
        // 14.7, 12, H 
        // 9.7, 9.7, H 
        // 9.6, 9, H 
        // 12, 9, H 
        // 9.45, 14.5, H 
        // 9.9, 14.6, H 
        // 12.7, 9.9, H 
        // 9, 12.14, H 
        // 9, 14.9, H 
        // 9.5, 9.7, H 
        // 9.7, 14.7, H 
        // 9.9, 14.5, H 
        // 14, 14.5, H 
        // 7.9, 9, H 
        // 9.9, 9.45, H 
        // 9, 14.14, H 
        // 14.7, 9.7, H 
        // 14.5, 9.9, H 
    </script>  
</body>  
  
</html> 

輸出:




相關用法


注:本文由純淨天空篩選整理自tarun007大神的英文原創作品 D3.js density.cellSize() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。