D3バージョン4では、ズームをx軸だけに制限するにはどうすればよいですか?無制限のズームとD3バージョン4で水平ズーム?
例:
var sideLength = 190;
var data = [
[0, 0],
[0.5, 0.8],
[1, 0.4]
];
var svg = d3.select("body")
.append("svg")
.attr("width", sideLength)
.attr("height", sideLength);
var yScale = d3.scaleLinear().range([sideLength, 0]);
var xScale = d3.scaleLinear().range([0, sideLength]);
var graphGroup = svg.append("g");
var onZoom = function() {
graphGroup.attr("transform", d3.event.transform);
};
var zoomBehavior = d3.zoom().on("zoom", onZoom);
var line = d3.line()
.x(function(d) {
return xScale(d[0]);
})
.y(function(d) {
return yScale(d[1]);
});
svg.call(zoomBehavior);
graphGroup.selectAll("path").remove();
graphGroup.append("path")
.datum(data)
.attr("class", "line")
.attr("d", line);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>D3 Zoom</title>
</head>
<body>
<script src="http://d3js.org/d3.v4.min.js"></script>
</body>
</html>
を知っていますか?見栄えの悪いライン –
@TomRoggeroどういう意味ですか? xとyの両方をズームしないと、シェイプのアスペクト比が変わります。 – Mehraban