gpt4 book ai didi

d3.js - 在直流系列图中设置 Y 轴范围

转载 作者:行者123 更新时间:2023-12-04 17:48:54 26 4
gpt4 key购买 nike

我正在使用 dc.js 构建系列图表。我无法根据需要设置 Y 轴的起点和终点。有人可以建议如何实现从 90 而不是 0 开始的 Y 轴吗?理想情况下,我想将 Y 轴起点设置为数据值的最小值,并将终点设置为数据值的最大值。

代码:

d3.csv("data/compareData.txt", function(data) {

ndx = crossfilter(data);
runDimension = ndx.dimension(function(d) {return [+d3.time.format.iso.parse(d.timestamp), +d.meterid]; });
runGroup = runDimension.group().reduceSum(function(d) { return +d.voltagemagnitude*100; });

testChart
.width(768)
.height(480)
.chart(function(c) { return dc.lineChart(c).interpolate('basis'); })
.x(d3.time.scale().domain([1366621166000, 1366621179983]))
.y(d3.scale.linear().domain([90, 100]))
.brushOn(false)
.yAxisLabel("Measured Speed km/s")
.xAxisLabel("Run")
.elasticY(true)
.dimension(runDimension)
.group(runGroup)
.mouseZoomable(false)
.seriesAccessor(function(d) {return "PMU: " + d.key[1];})
.keyAccessor(function(d) {return +d.key[0];})
.valueAccessor(function(d) {return +d.value;})
.legend(dc.legend().x(350).y(350).itemHeight(13).gap(5).horizontal(1).legendWidth(140).itemWidth(70));
testChart.yAxis().tickFormat(function(d) {return d3.format(',d')(d);});
testChart.margins().left += 40;

dc.renderAll();

});

最佳答案

我想你想要这样的东西:

var runMin = +runDimension.bottom(1)[0].voltagemagnitude*100;
var runMax = +runDimension.top(1)[0].voltagemagnitude*100;

然后你可以为你的 y 轴设置域:
.y(d3.scale.linear().domain([runMin, runMax]))

请注意 bottomtop返回一个数据行,因此您需要从中提取值并按照与 reduceSum 相同的方式对其进行转换。 .

关于d3.js - 在直流系列图中设置 Y 轴范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22884124/

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