#d3.js
#d3.js
Вопрос:
Мне нужно масштабировать линейный график d3 в зависимости от минимального значения данных, чтобы ось Y начиналась не с нуля.
var svg = d3.select("#chart"),
margin = {top: 20, right: 20, bottom: 110, left: 40},
margin2 = {top: 430, right: 20, bottom: 30, left: 40},
width = svg.attr("width") - margin.left - margin.right,
height = svg.attr("height") - margin.top - margin.bottom,
height2 = svg.attr("height") - margin2.top - margin2.bottom;
var parseDate = d3.timeParse("%Y-%m-%d %H:%M:%S");
var x = d3.scaleTime().range([0, width]),
x2 = d3.scaleTime().range([0, width]),
y = d3.scaleLinear().range([height, 0]),
y2 = d3.scaleLinear().range([height2, 0]);
var xAxis = d3.axisBottom(x),
xAxis2 = d3.axisBottom(x2),
yAxis = d3.axisLeft(y);
var line = d3.line()
.x(function (d) { return x(d.created_at); })
.y(function (d) { return y(d.temp); });
var line2 = d3.line()
.x(function (d) { return x2(d.created_at); })
.y(function (d) { return y2(d.temp); });
x.domain(d3.extent(data, function(d) { return d.created_at; }));
y.domain([0, d3.max(data, function (d) { return d.temp; })]);
x2.domain(x.domain());
y2.domain(y.domain());
Пытался использовать floatingScale, но, похоже, это не работает.
Комментарии:
1. Попробуйте
y.domain(d3.extent(data, function (d) { return d.temp; }))
. Просто любопытство: что такое floatingScale?2. Спасибо, кажется, работает). floatingScale — это библиотека d3: github.com/darshit-shah/d3.floatingScale
3. Ну, это не библиотека D3, это плагин D3. При использовании плагина проясните это в вопросе (иначе люди подумают, что это новый метод D3).