问题
I want to draw 2 horizontal lines for each of the bars in this nvd3 multibar chart
Here is the fiddle
I have few queries
- Why is
yValueScale(0)not starting from0of the plot - How do I start drawing the lines from where the bar starts? The
xValueScale("A")does not start from the start of the bar ofA - How do I get to know the width of the bar to draw the line of length equal to the bar width
回答1:
You are appending the line to the wrong "container". The svg variable is the entire svg container, nvd3's drawing container, though, is the g element:
<g class="nvd3 nv-wrap nv-multibar" transform="translate(0,0)">
So, use:
var g = d3.select("#chart1 svg .nvd3");
g.append("line")
.style("stroke", "#FF7F0E")
.style("stroke-width", "2.5px")
.attr("x1", xValueScale("A"))
.attr("y1", yValueScale(yValue))
.attr("x2", xValueScale("A") + 100)
.attr("y2", yValueScale(yValue));
Updated fiddle.
来源:https://stackoverflow.com/questions/40620576/draw-horizontal-lines-for-bars-in-nvd3-multi-bar-chart