Моя цель - перевести группу элементов svg с переводом. Это не работает. Вот код:D3. Почему мой групповой перевод не работает?
Создать SVG контейнер
// create svg container
canvas = d3.select("body").append("svg")
.attr("width", canvasBBox.width)
.attr("height", canvasBBox.height);
Append перевод х = 200, Y = 200
// apply a transform
canvas.append("g")
.attr("transform", function(d) { return scarpa.translate(200, 200); });
Добавить коробку
// render a background
canvas.append("rect")
.attr("x", 0)
.attr("y", 0)
.attr("width", canvasBBox.width)
.attr("height", canvasBBox.height)
.style("opacity", 1)
.style("fill", function(d) { return scarpa.rgb_SVG(0,255,0); });
Добавить y ось
// render y-axis
canvas.append("g")
.attr("class", "y axis")
.append("line")
.attr("stroke", function(d) { return scarpa.grey_SVG(64); })
.attr("x1", histogram.xScale(0))
.attr("y1", 0)
.attr("x2", histogram.xScale(0))
.attr("y2", canvasBBox.height);
Коробка + ось оси y никогда не переводит. Для проверки здравомыслия я применил направление перевода к коробке, и оно действительно переводилось. Вздох.
Я предполагаю, что групповой перевод подразумевает, что локальная система координат внутри с x = y = 0 будет началом переводимой рамки координат. Нет? Что мне здесь не хватает?
jhinzmann, ваше решение 1 мой исходный код. – dugla
, если вы подойдете ближе, вы увидите, что я объединил ваши первые два оператора в один оператор путем цепочки методов. таким образом, возвращенный выбор 'append (" g ")', а не выбор с 'append (" svg ")' будет храниться внутри переменной 'canvas' – jhinzmann
Фактически, ваше решение вложенного преобразования равно 2, а не 1. Я попытался это и работает. Пожалуйста, внесите изменения для чтения другими. Приветствия. – dugla