gpt4 book ai didi

c# - 在 d3.js 中使用动态列表数据

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:22 24 4
gpt4 key购买 nike

我已经从 c# web 方法中以列表的形式检索数据,我需要使用 D3 JavaScript 库以折线图的形式填充数据。我该怎么做?

如何在 D3 中使用列表数据,并在一个列表中使用日期时间格式,在另一个列表中使用值?

 $.ajax({
url: "ServiceMessage.asmx/GetPostings",
type: "POST",
contentType:"application/json",
success: function (data) {
var myData = data.d;
var data1;
var data2;
alert(myData.length + " hellos");
for (var i = 0; i < myData.length; i++) {
// $("#divMsg").append(myData[i].date + " " + myData[i].values);
data1[i] = myData[i].date; "</br>"
data2[i] = myData[i].values; "</br>"
$("#divMsg").append(data1[i]+""+data2[i])
}

如何使用 data1 data2 填充折线图?

最佳答案

你可以在这里看看http://www.d3noob.org/2012/12/starting-with-basic-d3-line-graph.html

您的情况更简单,因为您已经将数据放在列表中。不要将它分成两个数组,最好有一个列表 [{date:... , value:...},{date:..., value:...}... ]

您必须初始化 d3(如您所见,x 轴有一个“时间”范围,如果您使用它,您可以使用 d3.time.format("%d-%b-% y").解析函数):

var margin = {top: 30, right: 20, bottom: 30, left: 50},
width = 600 - margin.left - margin.right,
height = 270 - margin.top - margin.bottom;

var x = d3.time.scale().range([0, width]);
var y = d3.scale.linear().range([height, 0]);

var xAxis = d3.svg.axis().scale(x)
.orient("bottom").ticks(5);

var yAxis = d3.svg.axis().scale(y)
.orient("left").ticks(5);

/* ---------------------- This is your line --------------------- */
var valueline = d3.svg.line()
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.value); });
/* -------------------------------------------------------------- */

var svg = d3.select("body")
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");

然后附加行(其中数据是 {date:..., value:...} 的列表:

svg.append("path")      // Add the valueline path.
.attr("d", valueline(data));

svg.append("g") // Add the X Axis
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);

svg.append("g") // Add the Y Axis
.attr("class", "y axis")
.call(yAxis);

PS:我在这里使用“值”,但在您的问题中您使用“值”。

关于c# - 在 d3.js 中使用动态列表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25545879/

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