У меня есть линейный график d3. js, который может иметь отрицательные значения. Мой диапазон Y начинается с 0 и достигает максимального значения в наборе данных. Таким образом, линия идет под осью X, когда есть отрицательное значение.
Это хорошо, но мне нужно просто скрыть часть линии, которая находится под осью X. Я хочу сохранить значения такими, какие они есть, просто используйте некоторые CSS или JS, чтобы сделать часть линии под осью X невидимой.
Я пробовал с различными настройками переполнения, но это похоже не помогает. Можно сделать все, что находится ниже оси X, невидимым, поместив элемент над этой частью, но тогда метки оси X тоже будут скрыты.
Этот код рисует линию:
x.domain([d3.min(data, function(d) { return d.date}), d3.max(data, function(d) { return d.date})]);
y.domain([0, 1.05 * d3.max(data, function (d) { return d.value; })]);
area.y0(y(0));
g.append("path")
.datum(data)
.attr("fill", "#f6f6f6")
.attr("d", area);
//create line
var valueline = d3.line()
.x(function (d) { return x(d.date); })
.y(function (d) { return y(d.value); });
g.append("path")
.data([data])
.attr('fill', 'none')
.attr('stroke', '#068d46')
.attr("class", "line")
.attr("d", valueline);
Скрипка: https://jsfiddle.net/c1bvrd50/1/