gpt4 book ai didi

javascript - 使用D3在散点图矩阵中绘制背景网格线路径?

转载 作者:行者123 更新时间:2023-11-28 19:14:06 25 4
gpt4 key购买 nike

我已经能够绘制散点图的大部分视觉组件。

我现在想使用较浅的颜色绘制一些背景网格线。换句话说,每个 X 坐标都会有一个对应的垂直背景网格线,该网格线会覆盖 Y 轴的整个高度,每个 Y 坐标都会有一个对应的水平背景网格线,该网格线会覆盖 X 轴的整个宽度。

我尝试使用以下代码绘制水平路径:

    // Create horizontal paths...
var horizontalGrids = innerCanvas
.data(yAxisData)
.append("path")
//.attr("d", lineFunction(dataSet))
.attr("d", function(d, i){
var p1 = {x: 0, y: yAxisScale(d)};
var p2 = {x: marginRight-100, y: yAxisScale(d)};
var pts = [];
pts.push(p1);
pts.push(p2);
return lineFunction(pts);
})
.attr("stroke", "gray")
.attr("stroke-width", 2)
.attr("fill", "gray");

lineFunction 的代码是:

    var lineFunction = d3.svg.line()
.x(function(d) { return d.x; })
.y(function(d) { return d.y; })
.interpolate("linear");

传入并用于 yAxisData 的数据数组是:

var seasonsArray = ["Winter", "Spring", "Summer", "Autumn"];

目的是绘制四 (4) 条独立的水平路径线,一条对应数组“seasonsArray”的每个元素。

但是,这似乎只绘制了一条水平路径(即第一条路径线),并且似乎忽略了所有其他路径。 data() 绑定(bind)似乎无法正常工作。

您可以在标题为“让我们使用路径引入一些网格线:”的散点图部分中看到问题,如下例所示:http://bl.ocks.org/Guerino1/raw/9ae1b738088761f135e1/

原始代码可以在:https://gist.github.com/Guerino1/9ae1b738088761f135e1找到

包含上述代码片段的原始代码中的完整函数称为“draw6(...)”。

对于问题出在哪里有什么想法吗?

最佳答案

你不是thinking with joins 。模式为 selectAllenterappend:

var horizontalGrids = innerCanvas
.selectAll(".horzGrid")
.data(yAxisData)
.enter()
.append("path")
.attr("class", "horzGrid")
.attr("d", lineFunction(dataSet))
.attr("d", function(d, i) {
var p1 = {
x: 0,
y: yAxisScale(d)
};
var p2 = {
x: marginRight - 100,
y: yAxisScale(d)
};
var pts = [];
pts.push(p1);
pts.push(p2);
return lineFunction(pts);
})
.attr("stroke", "gray")
.attr("stroke-width", 2)
.attr("fill", "gray");

示例 here .

关于javascript - 使用D3在散点图矩阵中绘制背景网格线路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30213927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com