D3.js 从嵌套json获取数据以在d3中构造条形图时出现问题

D3.js 从嵌套json获取数据以在d3中构造条形图时出现问题,d3.js,D3.js,下面是json数据。。 [ { “月份”:“2016-01年”, “顶级服务”:[ { “域”:“EESEL-PROD-XCRM”, “服务”:“订户1\u 0”, “操作”:“getSubscriberProfile”, “总交易额”:333646 }, { “域”:“EESEL-PROD-XCRM”, “服务”:“ProductQuery-3\u 0”, “操作”:“listSubscriberProducts3”, “总交易额”:242797 }, { “域名”:“爱丽舍宫产品”, “服务

下面是json数据。。 [ { “月份”:“2016-01年”,
“顶级服务”:[ { “域”:“EESEL-PROD-XCRM”, “服务”:“订户1\u 0”, “操作”:“getSubscriberProfile”, “总交易额”:333646 }, { “域”:“EESEL-PROD-XCRM”, “服务”:“ProductQuery-3\u 0”, “操作”:“listSubscriberProducts3”, “总交易额”:242797 }, { “域名”:“爱丽舍宫产品”, “服务”:“GetCachedNetworkSettings-2_0”, “手术”:“脑电图”, “总交易量”:242123 }, ] } ]

var数据=[{“月”:“2016-01”,“儿童”:[{“姓名”:“蒙托亚”,“保存”:15.5},{“姓名”:“亚历克斯·斯泰洛克”,“保存”:14.7},{“姓名”:“安德斯·林德巴克”,“保存”:12.4},{“姓名”:“安东·胡多宾”,“保存”:21.4};
数据=数据[0]。子项;
var margin={顶部:20,右侧:20,底部:30,左侧:40},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x=d3.scale.ordinal()
.rangeRoundBands([0,宽度],.1);
变量y=d3.scale.linear()
.范围([高度,0]);
var xAxis=d3.svg.axis()
.比例(x)
.东方(“底部”);
var yAxis=d3.svg.axis()
.比例(y)
.东方(“左”);
//.勾号(10,“%”);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
//d3.tsv(“data.tsv”),类型,功能(错误,数据){
//如果(错误)抛出错误;
x、 域(data.map(函数(d){返回d.name;}));
y、 域([0,d3.max(数据,函数(d){返回d.saves;})]);
svg.append(“g”)
.attr(“类”、“x轴”)
.attr(“变换”、“平移(0)”、“高度+”)
.呼叫(xAxis);
svg.append(“g”)
.attr(“类”、“y轴”)
.呼叫(yAxis)
.append(“文本”)
.attr(“变换”、“旋转(-90)”)
.attr(“y”,6)
.attr(“dy”,“.71em”)
.style(“文本锚定”、“结束”)
.文本(“频率”);
svg.selectAll(“.bar”)
.数据(数据)
.enter().append(“rect”)
.attr(“类”、“条”)
.attr(“x”,函数(d){返回x(d.name);})
.attr(“宽度”,x.rangeBand())
.attr(“y”,函数(d){返回y(d.saves);})
.attr(“高度”,函数(d){返回高度-y(d);});
//});
功能类型(d){
d、 保存=+d.保存;
返回d;
}
.bar{
填充:钢蓝;
}
.bar:悬停{
填充物:棕色;
}
.安讯士{
字体:10px无衬线;
}
.轴线路径,
.轴线{
填充:无;
行程:#000;
形状渲染:边缘清晰;
}
.x轴路径{
显示:无;
}
导入java.util.*;
公共类HelloWorld{
公共静态void main(字符串[]args){
同义词表synTable=新同义词表();
synTable.registerSynonym(“电视”,“杜德哈山,电视”);
synTable.registerSynonym(“无线电”、“阿卡沙瓦尼”);
synTable.registerSynonym(“房子”、“家”);
System.out.println(“tv-”+synTable.getSynonyms(“tv”);
}
}
类同义词表{
私有映射同义词表=新HashMap();
公共集getSynonyms(字符串字){
返回同义词表.get(word);
}
public void registerSynonym(字符串字、字符串…同义词){
for(字符串syn:同义词){
putSynonymTable(word,syn);//同义词(word)=syn
putSynonymTable(syn,word);//同义词(syn)=单词
}
}
专用同义词表(字符串字、字符串同义词){
Set syns=synonymTable.get(word);
if(syns==null){
syns=新树集();
同义词表put(单词,syns);
}
syns.add(同义词);
}
}

试试这个,它会给你所有的同义词。如果这不是你要找的,那么就要求……

你到目前为止尝试了什么。。。要在x轴和y轴上显示的内容。条形图看起来如何??我尝试通过ajax调用获取json数据,并用简单的json数据(键值)构建条形图。。我可以获取嵌套的json数据,但无法绘制以x轴作为操作名称,y轴作为总事务的条形图。无法绘制此json数据的条形图。请帮助[{“月”:“2016-01”,“子项”:[{“名称”:“Al-Montoya”,“保存”:15.5},{“名称”:“Alex Stalock”,“保存”:14.7},{“姓名”:“安德斯·林德巴克”,“保存”:12.4},{“姓名”:“安东·胡多宾”,“保存”:21.4}]}]非常感谢..我可以在y轴上绘制以拉克为单位的数据,但如何在y轴上用数字计算。。例如:var数据=[{“月”:“2016-01”,“儿童”:[{“姓名”:“Al Montoya”,“保存”:333646},{“姓名”:“Alex Stalock”,“保存”:242797},{“姓名”:“Anders Lindback”,“保存”:242123},{“姓名”:“安东Khudobin”,“保存”:240055}];我们可以将其更改为任何格式,如数千或10万等,以您想要的格式显示。有一个函数类型()可以将值除以10或100或1000或10000。然后Y轴值将相应地改变。k na.非常感谢..我想用lakhs.来演示,但是有点混淆了在哪里使用函数type().After
data=data[0]。children行位置
data.forEach(函数(d){type(d);})并在
中键入(d)
除以1000
d.saves=+d.saves/1000
。K当我将鼠标移到图形上时,我得到的数据是其在“保存”字段中的数据,但要转换为百分比..请帮助我..示例242797转换为24.2797%…谢谢..)我会检查n让你知道:)嗨,你说的更简单的cod是什么意思
import java.util.*;

public class HelloWorld{

     public static void main(String []args){
         SynonymTable synTable = new SynonymTable();
         synTable.registerSynonym("tv","dhoordharshan, television");
         synTable.registerSynonym("radio","akashavani");
         synTable.registerSynonym("house ","home");
         System.out.println("tv-"+synTable.getSynonyms("tv"));

     }
}

class SynonymTable {

private Map<String, Set<String>> synonymTable = new HashMap<>();

public Set<String> getSynonyms(String word) {
    return synonymTable.get(word);
}

public void registerSynonym(String word, String... synonymsOfWord) {
    for (String syn : synonymsOfWord) {
        putSynonymTable(word, syn); // synonym(word) = syn
        putSynonymTable(syn, word); // synonym(syn) = word
    }
}

private void putSynonymTable(String word, String synonymOfWord) {
    Set syns = synonymTable.get(word);
    if (syns == null) {
        syns = new TreeSet<String>();
        synonymTable.put(word, syns);
    }
    syns.add(synonymOfWord);
}

}