Pages

Wednesday, March 11, 2015

How to post D3.js in blog?

D3.js in blog

เลือกว่า chart ของเราจะไปวาดอยู่ที่ไหน?
โดยจาก Tutorial ในหนังสือจะเลือกใช้เป็น body ซึ่งกราฟจะถูกวาดภายใน <body> ตรงนี้ </body> แต่ใน blog นั้นเราจำเป็นต้องสร้างพื้นที่ในการวาดกราฟขึ้นมาเองโดยใช้ <div id="chart"> </div>  โดย chart นั้นก็คือชื่อที่เราตั้งไว้และเราไปกำหนดใน code ว่าเราจะไปวาดใน chart ตาม code ตัวอย่างด้านล่าง (บรรทัดที่ 17)

ตัวอย่างการวาด Pie Chart อย่างง่าย

  1. <script src="http://d3js.org/d3.v3.min.js"></script>  
  2. <div align="center" id="chart"></div>  
  3. <script type="text/javascript">  
  4. //Width and height  
  5. var w = 300;  
  6. var h = 300;  
  7. var dataset = [10, 10, 10, 10, 10];  
  8. var outerRadius = w / 2;  
  9. var innerRadius = 0;  
  10. var arc = d3.svg.arc()  
  11.                 .innerRadius(innerRadius)  
  12.                 .outerRadius(outerRadius);  
  13. var pie = d3.layout.pie();  
  14. //Easy colors accessible via a 10-step ordinal scale  
  15. var color = d3.scale.category10();  
  16. //Create SVG element  
  17. var svg = d3.select("#chart")  
  18.             .append("svg:svg")  
  19.             .attr("width", w)  
  20.             .attr("height", h);  
  21. //Set up groups  
  22. var arcs = svg.selectAll("g.arc")  
  23.               .data(pie(dataset))  
  24.               .enter()  
  25.               .append("g")  
  26.               .attr("class""arc")  
  27.               .attr("transform""translate(" + outerRadius + "," + outerRadius + ")");  
  28. //Draw arc paths  
  29. arcs.append("path")  
  30.     .attr("fill"function(d, i) {  
  31.         return color(i);  
  32.     })  
  33.     .attr("d", arc);  
  34.   
  35. //Labels  
  36. arcs.append("text")  
  37.     .attr("transform"function(d) {  
  38.         return "translate(" + arc.centroid(d) + ")";  
  39.     })  
  40.     .attr("text-anchor""middle")  
  41.     .text(function(d) {  
  42.         return d.value;  
  43.     });  
  44. </script>  

จากโค้ดตัวอย่างจะเห็นได้ว่าเราเลือกพื้นที่วาดกราฟบน #chart และเราสร้าง <div id="chart"></div> ไว้สำหรับวาดกราฟทำให้เราสามารถ post กราฟโดยใช้ D3.js ไว้บน blog ของเราได้ :')

ผลลัพธ์ที่ได้



ปล. ชื่อ chart สามารถเปลี่ยนเป็นอะไรก็ได้โดยชื่อใน <div id="???"></div> และใน d3.select("#???") ต้องเหมือนกัน . . . *

No comments:

Post a Comment