我被困在这一张,我需要另一双眼睛来帮助我看看我失踪了。我有一个bl.ock在这里:d3.js堆叠条形图不能沿x轴绘制?
http://bl.ocks.org/hepplerj/c419baa3abf7363cd2d5
正如你所看到的,几个rect
元素不沿x轴绘制正确。任何关于我忽略的指针?非常感激!
我被困在这一张,我需要另一双眼睛来帮助我看看我失踪了。我有一个bl.ock在这里:d3.js堆叠条形图不能沿x轴绘制?
http://bl.ocks.org/hepplerj/c419baa3abf7363cd2d5
正如你所看到的,几个rect
元素不沿x轴绘制正确。任何关于我忽略的指针?非常感激!
你的代码只是一个小问题。首先,这是一个小提琴,它和你的bl.ock一样:http://jsfiddle.net/gp2ex7fw/
查看源代码并计算<g class="bar">
元素,你会看到只有7个元素,而你有8个晶粒的数据。完全缺失millet/sorghum groats
。这会在每个小节中产生间隙,导致小节未填满整个高度。
这是因为你的代码的以下部分:
d3.select("svg").selectAll("g")
.data(stackLayout(stackData))
.enter()
.append("g")
.attr("class", "bar")
当你做selectAll("g")
,你也选择第一g
元素(用于转化),这是连接到您的svg
元素前面。
修复非常简单。只要改变上面的代码:
d3.select("svg").selectAll(".bar")
.data(stackLayout(stackData))
.enter()
.append("g")
.attr("class", "bar")
现在我们只选择g
元素与class="bar"
且没有遗漏任何数据。这里有一个工作小提琴:http://jsfiddle.net/gp2ex7fw/1/
谢谢,@OrionMelt!这解决了它 - 并感谢有用的解释。 – 2014-10-03 02:38:45
有人由于某种原因downvoted我的评论。问题是height_scale变量。范围反转。所以SVG从最左上角开始绘制。 – 2014-10-02 03:57:27
@Incodeveritas,你的回答对我来说似乎是一个很好的答案。我不明白为什么它是downvoted。需要付出一些努力才能应用您的答案(在几次快速尝试后我没有成功),但无论谁低估了它,至少应该有礼貌地解释您的答案出了什么问题。 – Mars 2014-10-02 04:02:09
但我认为它更复杂。 'height_scale'分别影响每一个酒吧的一块。 – Mars 2014-10-02 04:14:54