2013-08-01 1 views
0

Мне нужно написать текст/метки на две разные оси. Это мой размер данных, и я хочу напечатать приветствие и имя по обоим осям в зависимости от массива. Но теперь только одна ось печатает. Пожалуйста, помогите мне:Как написать два разных текста по разной оси?

enter code here 

<script> 
    var dat =[1,2,3]; 
    var canvas = d3.select("body").append("svg") 
    .attr("height",500) 
    .attr("width",1000) 
    var x=10 ; var y=30; var space =50; 
    var x1=0 ; var y1=30; 
    var gene =canvas.selectAll("text") 
    .data(dat) 
    .enter() 
    .append("text") 
    .attr("x",function(d){x=x+space; return x; }) 
    .attr("y",30) 
    .text("hello") 
    var gene2 =canvas.selectAll("text") 
    .data(dat) 
    .enter() 
    .append("g") 
    .attr("x",function(d){return x1; }) 
    .attr("y",function(d) {y1=y1+space; return y1; }) 
    .text("name") 
</script> 
+0

Я не уверен, понимаю ли я, что вы хотите делать. Не могли бы вы уточнить? Что именно не работает? Вы получили сообщение об ошибке? –

+0

Мне нужно создать изображение svg, где я должен написать «привет» в верхней части изображения (ось х) и написать «имя по вертикали» (y-axis) – user2637905

+0

На веб-сайте D3 есть много примеров. ничего, что соответствует вашим требованиям? –

ответ

0

Вы не дифференцируя между 2 группами <text> элементов. Код создает узлы с первым связыванием данных, а затем он выбирает эти же узлы и снова связывает одни и те же данные (используя тот же самый ключ привязки по умолчанию), который будет просто обновлять данные на существующих узлах (то есть выбор enter() будет пустым).

Это аналогичная проблема для this. Существует несколько вариантов решения этой проблемы.

+0

привет спасибо, что это сработало для меня ... Можете ли вы также предложить мне несколько книг/веб-сайтов, которые помогут мне узнать от основ к реализациям – user2637905

+0

Я не знаю о книгах, но главный сайт d3 (http://d3js.org/) имеет приятный небольшой обзор и ссылки на тонну больших учебников. –

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