2015-06-08 3 views
2

Я создал диаграмму направленного усилия, используя пример http://bl.ocks.org/d3noob/5141278. Я приложил маркеры к путям:d3 маркер не отображается

var svg = d3.select("#entitiesGraph").append("svg") 
.attr("width", width) 
.attr("height", height); 

svg.append("svg:defs").selectAll("marker") 
.data(["end"]) 
.enter().append("svg:marker") 
.attr("id", "end") 
.attr("viewBox", "0 -5 10 10") 
.attr("refX", 15) 
.attr("refY", -1.5) 
.attr("markerWidth", 12) 
.attr("markerHeight", 12) 
.attr("orient", "auto") 
.append("svg:path") 
.attr("d", "M0,-5L10,0L0,5"); 

var path = svg.append("svg:g").selectAll("path") 
.data(force.links()) 
.enter().append("svg:path") 
.attr("marker-end", "url(#end)"); 

Все работает отлично, за исключением маркеров - они не отображаются, однако в консоли JavaScript я могу видеть, что они добавляются в контейнер SVG.

У кого-то есть идея, в чем проблема?

+1

Почему, на ваш взгляд, они не отображаются? http://jsfiddle.net/3ydk4Lwy/ – user3714582

+0

Я попробовал ваш пример, и он работает. Однако не в моем коде и это странно. Визуализация графика, которую я создаю, является частью одного более крупного проекта, мы используем много библиотек, я боюсь, что может возникнуть конфликт с зависимостями. Но я не знаю, как это выяснить ... – Rita

+0

Каков размер узлов в вашем приложении? – VividD

ответ

0

Неудачно, если вы решили этот вызов сейчас. Я столкнулся с подобной проблемой. Мой подход в контексте вашего вопроса:

var svg = d3.select("#entitiesGraph").append("svg") 
.attr("width", width) 
.attr("height", height); 

svg.append("svg:defs").selectAll("marker") 
.data(["end"]) 
.enter().append("svg:marker") 
.attr("id", window.location.href + "/end") // not .attr("id", "end") 
.attr("viewBox", "0 -5 10 10") 
.attr("refX", 15) 
.attr("refY", -1.5) 
.attr("markerWidth", 12) 
.attr("markerHeight", 12) 
.attr("orient", "auto") 
.append("svg:path") 
.attr("d", "M0,-5L10,0L0,5"); 

var path = svg.append("svg:g").selectAll("path") 
.data(force.links()) 
.enter().append("svg:path") 
.attr("marker-end", "url(#" + window.location.href + "/end)"); // not .attr("marker-end", "url(#end)"); 

Я думаю это потому, что ваш код ищет элемент с «конца» ид под «www.yourdomain /», тогда как вы хотите, чтобы смотреть под «www.yourdomain/partofyourwebsite/pageGraphIsRenderedIn», хотя я не уверен, что это правильно.

+0

Привет, да, проблема была из-за неправильного URL;) – Rita

Смежные вопросы