Ich bin noch sehr neu zu d3.js und habe einen Focus + Context über Brushing zu meinem Streudiagramm hinzugefügt, das eine logarithmische y-Achse und ordinale x-Achsenskala hat, aber es funktioniert nicht wie beabsichtigt. Das Bürsten scheint auf der X-Achse mit einem Offset zu arbeiten, zeigt aber nicht nur den ausgewählten Artikel/die ausgewählten Artikel.D3.js Fokus + Kontext über das Bürsten der Ordinalskala
Unten ist meine gebürstet Funktion:
// Brush Function
function brushed() {
var extent = brush.extent();
var d = xScale2.domain(),
r = xScale2.range();
extent = extent.map(function(e) { return d[d3.bisect(r, e) - 1]; });
xScale.domain(brush.empty() ? d : extent);
focus.select(".x.axis")
.call(xAxis)
.selectAll("text")
.style("text-anchor", "end")
.attr("dx", "-.8em")
.attr("dy", ".15em")
.attr("transform", "rotate (-65)");
focus.selectAll(".point")
.attr("d", d3.svg.symbol().type(function(d) { return symbols[d.TYPE_CODE]; }))
.attr("transform", function(d) { return "translate(" + xScale(dateFn(d)) + "," + yScale(d.TYPE_VALUE) + ")"; })
.style("fill", function(d) { return colors[d.TYPE_CODE]; });
}
Wenn jemand dabei helfen kann (vor allem all Orten, muß ich ändern und wie), ich würde lieben, diese Funktion zu erhalten und zu lernen, was ich tue falsch.
Voll-Code an: http://jsfiddle.net/brebuck/LL42b4L7/