Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 如果条件从未满足,则简单条形图中的条形图始终为蓝色,而对于低于某个数字的值,我希望它们为红色_Javascript_Html_Function_D3.js_Charts - Fatal编程技术网

Javascript 如果条件从未满足,则简单条形图中的条形图始终为蓝色,而对于低于某个数字的值,我希望它们为红色

Javascript 如果条件从未满足,则简单条形图中的条形图始终为蓝色,而对于低于某个数字的值,我希望它们为红色,javascript,html,function,d3.js,charts,Javascript,Html,Function,D3.js,Charts,我一直在尝试这段代码来创建一个带有给定数据的条形图。它可以工作,但它从不返回红色,而是始终返回蓝色。我试着把b[I]>0,仍然只有蓝色条。带参数b的函数肯定会执行,我也尝试过(b,I) var b=[5,9,6,4,3]; var x=100; 常数高度=250; 对于(var i=0;i您创建了一个阴影变量b,作为回调的参数,因此它不是数组,而是数组的项。由于您使用cycle分别绘制每个点,因此可以避免使用回调。 所以不是 .attr(“填充”,函数(b){…}) 你需要写这个 .attr

我一直在尝试这段代码来创建一个带有给定数据的条形图。它可以工作,但它从不返回红色,而是始终返回蓝色。我试着把b[I]>0,仍然只有蓝色条。带参数b的函数肯定会执行,我也尝试过(b,I)


var b=[5,9,6,4,3];
var x=100;
常数高度=250;

对于(var i=0;i您创建了一个阴影变量b,作为回调的参数,因此它不是数组,而是数组的项。由于您使用cycle分别绘制每个点,因此可以避免使用回调。 所以不是

.attr(“填充”,函数(b){…})
你需要写这个

.attr("fill", b[i] < 6 ? "red" : "blue")
.attr(“填充”,b[i]<6?“红色”:“蓝色”)
顺便说一句,d3 js可以为您迭代点:

<script>
    var b = [5, 9, 6, 4, 3];
    var xOffset = 100;
    const height = 250;

    var svg = d3.select("svg")
        .selectAll('rect')
        .data(b)
        .enter()
        .append('rect')
        .attr("x", (d, i) => xOffset + 25 * i)
        .attr("y", d => height - d * 20)
        .attr("width", 20)
        .attr("height", d => d * 20)
        .attr("fill", d => d < 6 ? "red" : "blue");
</script>

VarB=[5,9,6,4,3];
var xOffset=100;
常数高度=250;
var svg=d3.选择(“svg”)
.selectAll('rect')
.数据(b)
.输入()
.append('rect')
.attr(“x”,(d,i)=>xOffset+25*i)
.attr(“y”,d=>高度-d*20)
.attr(“宽度”,20)
.attr(“高度”,d=>d*20)
.attr(“填充”,d=>d<6?“红色”:“蓝色”);
<script>
    var b = [5, 9, 6, 4, 3];
    var xOffset = 100;
    const height = 250;

    var svg = d3.select("svg")
        .selectAll('rect')
        .data(b)
        .enter()
        .append('rect')
        .attr("x", (d, i) => xOffset + 25 * i)
        .attr("y", d => height - d * 20)
        .attr("width", 20)
        .attr("height", d => d * 20)
        .attr("fill", d => d < 6 ? "red" : "blue");
</script>