D3:在1张图中绘制3个csv,每个图都有一个函数,但有2个csv;不起作用
D3: Drawing 3 csv in 1 graph with a function for each, but 2 don't work
我正在尝试用D3创建一个基本但可工作的交互式MCA(用于多个对应关系分析)。我的一个函数(Indiv函数)工作得很好,但另外两个函数虽然格式相同,但却不一样。
var margin = {right: 30, left: 30, top: 50, bottom: 50},
width = 620 - margin.left - margin.right,
height = 500+margin.top + margin.bottom;
var x = d3.scale.linear()
.domain([-2,3])
.range([0,width])
var y = d3.scale.linear()
.domain([2,-2])
.range([0,height]);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom")
.tickSize(1);
var yAxis = d3.svg.axis()
.scale(y)
.orient("left")
.tickSize(1);
var canvas = d3.select(".result-side1")
.append("svg")
.attr("width", width+20)
.attr("height", height+20)
.append('g')
.attr('transform', 'translate(30,30)');
canvas.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + (height-30) + ")")
.call(xAxis);
canvas.append("g")
.attr("class", "y axis")
.call(yAxis);
canvas.append("text")
.attr("x", (width / 2))
.attr("y", 40 - (margin.top))
.attr("text-anchor", "middle")
.style("font-size", "22px")
.style("text-decoration", "underline")
.attr("fill","white")
.text("Les Etats classés selon leur profil");
function affichInd(){
var individus = canvas.append("g");
d3.csv("donnees/USAindiv.csv", function(error, data)
{
//Add data to the graph and call enter.
var dataEnter = individus.selectAll("circle").data(data).enter();
var dataEntertext = individus.selectAll("text").data(data).enter();
dataEnter.append("circle")
.attr("cx", function(d,i){return x(d.Dim1);})
.attr("cy", function(d,i){return y(d.Dim2);})
.attr("r", 2)
.attr("fill","#3399FF");
dataEntertext.append("text")
.attr("x", function(d,i){return x(d.Dim1);})
.attr("y", function(d,i){return y(d.Dim2);})
.attr("fill","#3399FF")
.text(function(d,i){return d.State});
})
}
/* These last two don't work */
/*Variables*/
function affichVar(){
var variables = canvas.append("g");
d3.csv("donnees/USAvaria.csv",
function(error, datavaria)
{
//Add data to the graph and call enter.
var datavariaEnter = variables.selectAll("circle").data(datavaria).enter();
var datavariaEntertext = variables.selectAll("text").data(datavaria).enter();
datavariaEnter.append("circle")
.attr("cx", function(d,i){return x(d.Dim1);})
.attr("cy", function(d,i){return y(d.Dim2);})
.attr("r", 2)
.attr("fill","#B9CC14");
datavariaEntertext.append("text")
.attr("x", function(d,i){return x(d.Dim1);})
.attr("y", function(d,i){return y(d.Dim2);})
.attr("fill","#B9CC14")
.text(function(d,i){return d.Variables});
})
}
/*Variables supplémentaires*/
function affichVarSupp(){
var variablessupp = canvas.append("g");
d3.csv("donnees/USAvasup.csv", function(error, datavasup)
{
//Add data to the graph and call enter.
var datavasupEnter = variablessupp.selectAll("circle").data(datavasup).enter();
var datavasupEntertext = variablessupp.selectAll("text").data(datavasup).enter();
datavasupEnter.append("circle")
.attr("cx", function(d,i){return x(d["Dim1"]);})
.attr("cy", function(d,i){return y(d["Dim2"]);})
.attr("r", 2)
.attr("fill","#FF584C");
datavasupEntertext.append("text")
.attr("x", function(d,i){return x(d["Dim1"]);})
.attr("y", function(d,i){return y(d["Dim2"]);})
.attr("fill","#FF584C")
.text(function(d,i){return d.Qualisup});
})
}
这有什么理由不起作用吗?
我试过摆弄一些代码,这就是为什么它们并不完全相似,但我想我错过了一些概念性的东西。。。以下是我得到的:http://www.victoralexandre.fr/d3_acm_3.html
谢谢你的帮助!Vic。
我的朋友们的答案在文件中爆炸了:我只需要把d3.csv改成d3.tsv,NaN就变成了数字。
Hurray。(尽管我不太清楚为什么会发生这种情况)
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- jquery csv函数,如何返回值
- 用于CSV导出的SlickGrid函数
- D3 使用 d3.map 和 d3 queue() 函数读取 csv
- D3.js - 从 CSV 文件加载数据并在函数调用外部使用它
- D3:在1张图中绘制3个csv,每个图都有一个函数,但有2个csv;不起作用
- 如何将上传的CSV文件传递到我的函数中
- d3.js中d3.csv()的回调函数问题
- 如何创建一个“;返回函数并拆分csv文件的函数“;
- csv访问器函数for循环
- 使用Javascript或jquery函数从csv文件中获取HTML代码变量