Here is my code:
<script>
var response = null;
////get pie data from postgredql
$(document).ready(function () {
$.ajax({
url: "/piedata",
type: "get",
dataType: 'json',
async: false,
contentType: "application/json",
success: function (msg) {
// alert("msg");
//alert(JSON.stringify(msg));
msg1 = JSON.stringify(msg);
response = JSON.parse(msg1);
//alert(JSON.stringify(response));
//alert(response);
}
});
});
var canvas = d3.select('#piec')
.append('svg')
.attr({ 'width': 1000, 'height': 600, 'radius' : 1000 });
//var data = [{ "label": "Maximo", "value": 10},
// { "label": "ASD", "value": 40},
// { "label": "Iportman", "value": 5},
// { "label": "Sales", "value": 10},
// { "label": "Finance", "value": 10},
// { "label": "HR", "value": 10 }];
var data = JSON.stringify(response);
//alert(data);
//alert(response);
alert(JSON.stringify(response));
var colors = ['Tomato', 'DodgerBlue'];
var colorscale = d3.scale.linear().domain([0, data.length]).range(colors);
var arc = d3.svg.arc()
.innerRadius(0)
.outerRadius(250);
var arcOver = d3.svg.arc()
.innerRadius(0)
.outerRadius(200 + 10);
var pie = d3.layout.pie()
.value(function (d) { return d.value; });
var renderarcs = canvas.append('g')
.attr('transform', 'translate(600,300)')
.selectAll('.arc')
.data(pie(data))
.enter()
.append('g')
.attr('class', "arc");
renderarcs.append('path')
.attr('d', arc)
.attr('fill', function (d, i) { return colorscale(i); })
.on("mouseover", function (d) {
d3.select(this).transition()
.duration(1000)
.attr("d", arcOver);
})
.on("mouseout", function (d) {
d3.select(this).transition()
.duration(1000)
.attr("d", arc);
});
renderarcs.append('text')
.attr('transform', function (d) {
var c = arc.centroid(d);
console.log(c);
return "translate(" + c[0] + "," + c[1] + ")";
})
.attr("text-anchor", "middle")
.text(function (d, i) { return data[i].State; });
</script>
and here it is app.js code:
app.get('/piedata', function (req, res) {
var sql = require("mssql");
// config for your database
var config = {
user: 'sa',
password: 'password',
server: 'localhost',
database: 'datas',
port: '5124'
};
// connect to your database
sql.connect(config, function (err) {
if (err) console.log(err);
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query('select State,sales from Orders$', function (err, result) {
if (err) console.log(err)
// send records as a response
res.send(result);
sql.close();
});
});
});
Please let me know how to append that data in pie chart to draw pie chart and using nodejs, sql server,jquery and i need to draw pie chart from sql server data and i am using two parameters which was i have to draw pie chart and i am getting response from server but not able to append that data in chart.