Javascript 如果条件从未满足,则简单条形图中的条形图始终为蓝色,而对于低于某个数字的值,我希望它们为红色
我一直在尝试这段代码来创建一个带有给定数据的条形图。它可以工作,但它从不返回红色,而是始终返回蓝色。我试着把b[I]>0,仍然只有蓝色条。带参数b的函数肯定会执行,我也尝试过(b,I)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
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>