Я добавляю две оси к SVG, однако, ось у визуализируется от левого в SVG:оси d3 рендеринга вне SVG
Если установить ориентацию на «вправо ', то это оказывается, но на левой стороне:
код выглядит так:
'use strict';
var margins = {top: 50, bottom: 50, left: 50, right: 50};
var dateFormat = d3.time.format('%d-%b-%y')
var svg = d3.select('.graph');
var svgWidth = parseInt(svg.style('width')),
svgHeight = parseInt(svg.style('height'));
var height = svgHeight - margins.top - margins.bottom,
width = svgWidth - margins.left - margins.right;
var dates = [], closes = [];
data.forEach(function(item) {
dates.push(dateFormat.parse(item.date));
closes.push(item.close);
});
var xScale = d3.time.scale().range([0, width]).domain([d3.min(dates), d3.max(dates)]);
var yScale = d3.scale.linear().range([height, 0]).domain([0, d3.max(closes)]);
var xAxis = d3.svg.axis().scale(xScale).orient('bottom');
var yAxis = d3.svg.axis().scale(yScale).orient('right');
svg.append("g")
.attr("class", "x axis")
.call(xAxis);
svg.append("g")
.attr("class", "y axis")
.call(yAxis);
Любые советы по разработке ширины оси? например '1.0' требует гораздо меньше отступов, чем' 1000,00' – Ian
@Ian К сожалению, ничего, кроме «рендеринга» всех тиков (либо для строки, а затем с использованием максимальной ширины или фактического рендеринга им «' вне экрана и просмотра на их BoundingBox), нахождение максимального необходимого пространства, а затем * .update * -исполнение всех компонентов диаграммы. Обычно это выполняется достаточно хорошо, чтобы быть полезным, но часто слишком много неприятностей, если тики не сильно меняются. –
спасибо - да, я заметил, что при использовании 'dimple.js' у него были такие проблемы. Угадайте, мне нужно будет разобраться с этим вручную! – Ian