D3 kullanarak programlı olarak tanımlanan bir yol üzerinde bazı değişiklikler yapmaya çalışıyorum. Yapmak istediğim değişiklik, yolun opaklığını değiştirerek oldukça basit. Sorun şu ki, yolun kendisi değişecekken, bitiş işareti yok ve bunu nasıl yapacağımı tam olarak emin değilim.SVG yolu opaklığının ve işaretinin değiştirilmesi
markör böylece aşağıdaki gibi tanımlanır:
// define arrow markers for graph links
svg.append('svg:defs').append('svg:marker')
.attr('id', 'end-arrow')
.attr('viewBox', '0 -5 10 10')
.attr('refX', 6)
.attr('markerWidth', 3)
.attr('markerHeight', 3)
.attr('orient', 'auto')
.append('svg:path')
.attr('d', 'M0,-5L10,0L0,5')
.attr('fill', '#CCCCCC');
yolu:
// Create the links between the nodes
var links = svg.append("g")
.selectAll(".link")
.data(data.links)
.enter()
.append("path")
.attr("class", "link")
.attr("d", sankey.link())
.style('marker-end', "url(#end-arrow)")
.style("stroke-width", function (d) { return Math.max(1, d.dy); })
.sort(function (a, b) { return b.dy - a.dy; });
işaretçileri güncelleme değildir I yolları değiştirmek için kullanımı kod:
d3.selectAll("path.link")
.filter(function (link) {
// Find all the links that come to/from this node
if (self.sourceLinksMatch(self, link, node)) {
return true;
}
if (self.targetLinksMatch(self, link, node)) {
return true;
}
return false;
})
.transition()
.style("stroke-opacity", 0.5);
İşaretçi sonu stilini değiştirmek için neyi değiştirmem gerektiğini önerebilecek biri var mı?
Teşekkür
Eğer aynı önceden tanımlanmış işaretçiye sahip birden fazla yola sahipseniz işe yaramazsa – SumNeuron
'" opaklık "' "ve" inme "opaklıkları. "İnme-opaklık" ve "dolgu-donukluk" özelliklerini ayrı ayrı ayarlamak daha güvenlidir. –