kullanırken ölçeğin etki alanının en düşük değerini nasıl elde edeceğim Doğrudan bir x ekseni üzerinde görünmesi gereken bir başvuru noktasını çizmeye çalıştığım bir dağılım grafiği var; bu şekilde:d3.js nice()
// give ourselves some space
yMin = yMin * 0.9;
yMax = yMax * 1.1;
// set up y
var yValue = function (d) {
return d.price;
},
yScale = d3.scale.linear()
.domain([yMin, yMax])
.range([height, 0])
.nice(),
yAxis = d3.svg.axis()
.scale(yScale)
.orient("left");
Sorun, doğrudan x ekseni üzerinde bir referans noktası çizmek istiyorum. Ben .nice() kullanmıyorsanız, ben kolayca şöyle referans noktası belirleyebiliriz:
var reference = svg.append('g').attr("class", "grid-reference");
reference.append("circle").attr("id", "some-reference-value")
.attr("class", "dot")
.attr("r", 9)
.attr("cx", xScale(someReferenceValue))
.attr("cy", yScale(yMin))
.style("fill", "grey")
.style("opacity", 1);
ama() .nice kullanırken bunu nasıl anlamaya görünüyor olamaz. Bu konuda gidebileceğim başka bir yol var mı, bir şekilde x ekseni çizgisinin y koordinatını almak gibi?
Güzel değeri nasıl hesaplayabildiğimi ve kodu nasıl anlayabildiğimi görmek için d3 kodunu kazmaya başladım, ancak yinelenen kodun gereksiz bakımından söz etmemek için değeri yeniden hesaplamak kaygılı görünüyor - özellikle de referans noktaları y ekseni boyunca çizim yapmam gerekecek ve x eksenim için logaritmik bir ölçek kullanıyorum (logaritmik nice() fonksiyonu lineer nice() fonksiyonundan farklıdır, bu da ek yinelenen kod ve gereksiz bakım anlamına gelir).
Fikirler?
()' 'yScale.domain() [0] '. –