Javascript 使用D3.js创建频率计数饼图

Javascript 使用D3.js创建频率计数饼图,javascript,d3.js,web,bigdata,Javascript,D3.js,Web,Bigdata,我有一个关于d3.js的问题 假设我有以下数据: A A B K J I O N p B N J D G R X S O M H Y D J B T N Y S B N R N E B U D B G D G Y F T K O 我想得到每个字母的频率计数,并用D3.js制作一个饼图,你不需要D3进行计数,只需要简单的JavaScript: var string = "A A B K J I O N P B N J D G R X S O M H Y D J B T N Y S B N R N

我有一个关于d3.js的问题

假设我有以下数据:

A A B K J I O N p B N J D G R X S O M H Y D J B T N Y S B N R N E B U D B G D G Y F T K O


我想得到每个字母的频率计数,并用D3.js制作一个饼图,你不需要
D3
进行计数,只需要简单的JavaScript:

var string = "A A B K J I O N P B N J D G R X S O M H Y D J B T N Y S B N R N E B U D B G D G Y F T K O";
var counts = {};
string.split(" ").forEach(function(d) {
  if (!counts[d]) {
    counts[d] = 0;
  }
  counts[d]++;
});
从这里开始,饼图变成了漂亮的股票:


var string=“A A B K J I O N P B N J D G R X S O M H Y D B T N Y S B N R N E B U B G D G Y F T K O”;
变量计数={};
string.split(“”).forEach(函数(d){
如果(!计数[d]){
计数[d]=0;
}
计数[d]++;
});
var数据=d3.分录(计数);
console.log(数据)
var宽度=360;
var高度=360;
变量半径=数学最小值(宽度、高度)/2;
var color=d3.scaleOrdinal(d3.schemeCategory20b);
var svg=d3.select('body')
.append('svg')
.attr('width',width)
.attr('height',height)
.append('g')
.attr('transform','translate(+)(宽度/2)+
",;
var arc=d3.arc()
.内半径(0)
.外层(半径);
var pie=d3.pie()
.价值(功能(d){
返回d值;
})
.sort(空);
var path=svg.selectAll('path')
.数据(pie(数据))
.输入()
.append('路径')
.attr('d',弧)
.attr('fill',函数(d,i){
返回颜色(d.data.key);
});

您尝试过什么?我知道这是一个虚拟数据,但你一定用你的原始数据做了一些尝试。您也可以共享这些数据吗?您不能使用外部web服务提供这些数据吗。我使用WSO2 MS4J做了类似的事情。在此基础上,我使用Java读取数据,计算频率,并将其作为适当的HTTP响应返回到服务器d3.js。我使用Rstudio手动计算频率,创建新表,并使用d3制作饼图。我相信我所做的事情是无效的。有没有办法用D3计算频率?你能看看这种情况并提供帮助吗