Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将.attr()添加到变量-Jquery_Javascript_Jquery_D3.js - Fatal编程技术网

Javascript 将.attr()添加到变量-Jquery

Javascript 将.attr()添加到变量-Jquery,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我正在使用人力车框架,它使用D3进行可视化。。我正在创建一个变量节点,在其中添加矩形。只要满足一个特定条件,我就希望填充为20 var nodes = graph.vis.selectAll("path").data(series.stack.filter(function(d) { return d.y !== null })).enter().append("svg:rect").attr("x", function(

我正在使用人力车框架,它使用D3进行可视化。。我正在创建一个变量节点,在其中添加矩形。只要满足一个特定条件,我就希望填充为20

 var nodes = graph.vis.selectAll("path").data(series.stack.filter(function(d) {
                    return d.y !== null
                })).enter().append("svg:rect").attr("x", function(d) {
   console.log(brandCount[v])
    if(d.x == brandCount[v]) {
        console.log("called2")
        v++;

        var z = 0;
        padding = 10;
    } else {
        padding = 0;
    }.attr("y", function(d) {
                    return (graph.y(d.y0 + Math.abs(d.y))) * (d.y < 0 ? -1 : 1 )
                }).attr("width", 30).attr("height", function(d) {
                    return graph.y.magnitude(Math.abs(d.y))
                }).attr("rx", 4).attr("transform", transform); 
var nodes=graph.vis.selectAll(“路径”).data(series.stack.filter(函数d){
返回d.y!==null
})).enter().append(“svg:rect”).attr(“x”,函数(d){
console.log(brandCount[v])
如果(d.x==brandCount[v]){
console.log(“called2”)
v++;
var z=0;
填充=10;
}否则{
填充=0;
}.attr(“y”,函数(d){
返回(图y(d.y0+数学abs(d.y))*(d.y<0?-1:1)
}).attr(“宽度”,30)。attr(“高度”,功能(d){
返回图y.量级(数学绝对值(d.y))
}).attr(“rx”,4).attr(“transform”,transform);
在这里我应该如何访问变量并向其添加属性


品牌计数,数组有许多值
([1,4,1,1,4,1,6,1,5,1,1,1,1,1,1,1,1,6,1,2,2,2,1,1,1,1,1,5,8,4,1,6,3,1,9,1,1,1,4,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,2,1,2,2])
。在每个值之后,我都需要一个空格。我只是尝试循环它。.作为brand_count[v]并将其增加v++。

您需要在设置
x
属性的函数中评估您的条件,即

.attr("x", function(d) {
    if(z == brand_Count[v]) {
        v++;
        z = 0;
        padding = 10;
    } else {
        padding = 0;
    }
    return graph.x(d.x) + padding;
}
要在5个值之后添加填充,不需要单独的计数器:

.attr("x", function(d, i) {
    return graph.x(d.x) + (Math.floor(i/5)*20);
}
要在特定值后添加填充,可以执行以下操作:

var counter = 0;
// ...more code...
.attr("x", function(d) {
    if(d == 1 || d == 4) counter++;
    return graph.x(d.x) + (counter*20);
}
如果值存储在数组中:

var counter = 0, brandCount = [1,2,3];
// ...more code...
.attr("x", function(d) {
    if(brandCount.indexOf(d) != -1) counter++;
    return graph.x(d.x) + (counter*20);
}

非常感谢你..这是添加填充的过程,对吗?我在坐标后没有空间…我只是用了你的代码并让它工作了.如果你解释清楚你想要什么,我也许能帮你.这里的问题是,我需要在每1,4,1…之后留一个空间,而不仅仅是1,4和1…有什么办法处理这个问题吗拉尔斯?不知道你的意思。你是说如果前面的元素是
[1,4,1]
你需要空格,还是说你想在
1
之后和
4
之后有空格?是的,我是指后一个。我需要1之后的空格,4之后的空格,1之后的空格,4之后的空格…………可能吗?