js, и я пытаюсь выяснить, как рисовать дискретное число прямоугольников в элементе SVG. Это может быть 5 прямоугольников до миллиона. Каков наилучший способ сделать это? Должен ли я использовать шкалу Ординала, поскольку у меня есть дискретное число прямоугольников или я должен использовать линейную шкалу? Поэтому я думаю, что ширина прямоугольников должна уменьшаться по мере увеличения числа прямоугольников.Рисование дискретного числа прямых в элементе svg. Использование D3.js
1
A
ответ
1
Вам необходимо вычислить макет и создать соответствующие шкалы. Например:
var width = 300,
height = 20,
margin = 2,
nRect = 20,
rectWidth = (width - (nRect - 1) * margin)/nRect,
svg = d3.select('#chart').append('svg')
.attr('width', width)
.attr('height', height);
var data = d3.range(nRect),
posScale = d3.scale.linear()
.domain(d3.extent(data))
.range([0, width - rectWidth]);
svg.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr('x', posScale)
.attr('width', rectWidth)
.attr('height', height);
Я написал небольшую jsfiddle с этим кодом: http://jsfiddle.net/pnavarrc/CA7rY/
+0
Спасибо, был бы хороший способ сделать это, если бы мне нужна квадратная матрица? – ltsimpso
Смежные вопросы
- 1. Использование HTML вместо SVG в d3.js
- 2. Рисование диаграмм d3 без svg
- 3. D3.js элемент SVG обхода
- 4. d3.js - тест жасмина, чтобы вызвать щелчок на элементе svg
- 5. Рисование прямых линий в JavaScript
- 6. Рисование квадратная матрица с использованием D3.js
- 7. Рисование линий между точками в d3.js
- 8. SVG кривая для многих небольших прямых линий
- 9. d3 пользовательские столбчатые диаграммы с использованием путей SVG вместо прямых
- 10. Рисование линий с данными geoJSON в D3.js
- 11. Рисование из csv в D3
- 12. Сохранять преобразование в элементе SVG
- 13. Использование поручень с D3.js
- 14. Несколько прямых линий между двумя узлами в d3.js
- 15. Создание переменного числа элементов с D3.js
- 16. D3.js: Рисование прямоугольников под текстом
- 17. Как перетащить прямоугольник svg в d3.js?
- 18. Получение значения атрибутов SVG в D3.js
- 19. d3.js. Как добавить documentFragment в SVG?
- 20. Как преобразовать код svg в d3.js?
- 21. содержат текст в форме SVG d3.js
- 22. Переход пути треугольника svg в D3.js
- 23. По умолчанию положение SVG в d3.js
- 24. D3.js Рисование прямоугольников вокруг круга
- 25. Рисование линий зигзага намного медленнее, чем рисование прямых линий.
- 26. Использование шрифтов Google с d3.js и SVG
- 27. Вывод SVG-графика из D3.js Использование Phantomjs
- 28. SVG: рисование внутри дочернего элемента
- 29. D3.js - Является ли «svg:» в «svg: rect» обязательным?
- 30. Как добавить svg поверх другого svg в d3, js
Хотите разместить прямоугольники рядом друг с другом? На вершине друг друга? Нанесение миллиона прямоугольников будет слишком медленным, вы можете увеличить до нескольких тысяч. –
рядом друг с другом, прежде чем я использовал ширину/(d3.range (количество прямых) .length) + xmargin для атрибута width и используя ту же самую вещь для позиции значения x, но я использую 1 2 3 4 5 ... чтобы переместить его, чтобы он не перекрывался. Я пытался выяснить, как это сделать с масштабами, но не удалось. – ltsimpso
Вы пробовали иметь только линейную шкалу с индексами в качестве входного домена и x начальных позиций вывода? –