我有两个数据集d1和d2,如下所示:
const d1 = [
{group: "H", value: 6},
{group: "I", value: 2},
{group: "M", value: 3}
];
const d2 = [
{group: "H", value: 1},
{group: "I", value: 12},
{group: "M", value: 2}
];还有一个名为makethisgraph的函数,其中发送的“数据”要么是d1,要么是基于我单击的按钮的d2。在这个函数中,根据我选择的数据,条形图会发生变化,以匹配值。我希望这样做,如果我选择d1,那么条形图的颜色就会变成红色,如果d2会变成绿色。
function makethisgraph(data) {
var u = svg.selectAll("rect")
.data(data)
u .enter()
.append("rect")
.merge(u)
.transition()
.duration(1000)
.attr("x", function(d) { return x(d.group); })
.attr("y", function(d) { return y(d.value); })
.attr("width", x.bandwidth())
.attr("height", function(d) { return height - y(d.value); })
.attr("fill", function(d, i) {
// if ( data = d1)
// {
// return "red"
// }
// else
// {
// return "green"
// }
return "blue"
});我试着写,如果我得到的数据是d1,那么它将是红色的,但它不起作用。还有别的办法解决这个问题吗?
发布于 2022-02-21 10:02:32
向color添加makethisgraph参数
function makethisgraph(data, color) {
...
u.enter()
...
.attr("fill", color);
}
...
makethisgraph(d1, 'red');
makethisgraph(d2, 'green');https://stackoverflow.com/questions/71203573
复制相似问题