【发布时间】:2018-03-30 07:34:24
【问题描述】:
我正在尝试绘制条形图,每个条形图都位于其相应复选框旁边。我有几个<div className="geneCountBar">s,我尝试选择所有这些,附加数据,然后使用以下函数绘制条形:
createBarChart = () => {
let datum = this.props.datum.map((geneObj) => {
return geneObj["values"].length;
});
d3.selectAll("div.geneCountBar")
.data(datum)
.enter()
.append("div")
.attr("class", "bar")
.attr('transform', 'rotate(-90)')
.style("height", function(d) {
var barHeight = d * 5;
return barHeight + "px";
});
}
我只是从使用d3创建条形图的最基本教程中获取的:
http://alignedleft.com/tutorials/d3/making-a-bar-chart
函数运行后不知何故 - 当 DOM 已经呈现时,我用按钮触发它 - 根本没有发生 DOM 操作。我检查了datum,它是正确的:只是一个包含几个值的数组。 datum 中的元素数量对应于所选divs 的数量。我检查了d3.selectAll(div.geneCountBar) 是否真的选择了正确的元素,它是。 DOM 看起来像这样:
进一步阐明我真正想要实现的目标。在这里你可以看到复选框:
我想在每个项目旁边画一个条形图,表示数据集中每个项目的数量。
我在这里做错了什么?任何建议将不胜感激。
【问题讨论】:
标签: javascript reactjs d3.js bar-chart