Javascript D3.js D3.json()函数不接受有效的json,如何使用与D3.csv相同的json?
在学习d3.js时,我用.csv文件中的原始数据构建了一个直方图,如下所示Javascript D3.js D3.json()函数不接受有效的json,如何使用与D3.csv相同的json?,javascript,json,csv,d3.js,histogram,Javascript,Json,Csv,D3.js,Histogram,在学习d3.js时,我用.csv文件中的原始数据构建了一个直方图,如下所示 [{"y":["16","18","18","19"],"x":["2","3","5","12"]}] CSV D3 ……等等。这是我第一次打电话,效果很好 将相同的数据放入如下有效的json格式中 [{"y":["16","18","18","19"],"x":["2","3","5","12"]}] 这样调用数据是行不通的 d3.json("data.json", function (json) { var
[{"y":["16","18","18","19"],"x":["2","3","5","12"]}]
CSV
D3
……等等。这是我第一次打电话,效果很好
将相同的数据放入如下有效的json格式中
[{"y":["16","18","18","19"],"x":["2","3","5","12"]}]
这样调用数据是行不通的
d3.json("data.json", function (json) {
var map = data.map(function (i) {
return parseFloat(i.y);
})
var histogram = d3.layout.histogram()
.bins(4)
(map)
如何让d3.js以与原始.csv格式相同的方式解释.json文件,以便我必须更改的代码最少。这可能吗?我读到的文档让我很困惑,似乎与我的示例不符。Youtube上最好的教程使用.csv而不是json。我需要使用json。为您的json文件尝试以下数据: [{"x":"2","y":"16"}, {"x":"3","y":"18"}, {"x":"5","y":"18"}, {"x":"12","y":"19"}] [{“x”:“2”,“y”:“16”},{“x”:“3”,“y”:“18”},{“x”:“5”,“y”:“18”},{“x”:“12”,“y”:“19”}] 如果您用数字而不是字符串指定数据,您还可以去掉
parseFloat(i.y)
(只需返回i.y
)。CSV值被强制转换为字符串,而JSON可以有数字
编辑:将第一行更改为:
d3.json(“data.json”,function(error,data){
。注意参数名称。您的代码应该在这之后工作。您得到了什么结果?这很有帮助。但是,当访问map方法时,会给我“undefined”或“null”。请尝试更改function(json)运行(数据)我不认为这是问题所在。d3支持回调函数,根据@rebrine的最后一个函数定义,这些回调函数需要数据
参数,但无法在JSFIDLE上运行,但我已经通过建立data.csv和data.json文件并使用我的本地web确认了d3.json的工作原理如本答案所述服务器确认。您是否已尝试通过将数据参数写入控制台来将代码缩减到最小值?您是否查看了JavaScript控制台以查看是否存在任何错误(例如,与从URI检索相关)?好的,Thach Mai关于格式的看法是对的。我还遇到了“映射”问题和代码中的其他内容。这段视频帮助我确定下来。谢谢你的帮助!
[{"x":"2","y":"16"}, {"x":"3","y":"18"}, {"x":"5","y":"18"}, {"x":"12","y":"19"}]