Javascript dc.js x轴显示为十进制而不是整数
我有一个折线图,是a轴上的周数和y轴上的容量。然而,由于某种原因,x轴的间隔为0.5。。。我希望它从1,2,3,4开始,等等。。而不是1、1.5、2、2.5、3、3.5等 这是我的代码供参考Javascript dc.js x轴显示为十进制而不是整数,javascript,d3.js,dc.js,linegraph,Javascript,D3.js,Dc.js,Linegraph,我有一个折线图,是a轴上的周数和y轴上的容量。然而,由于某种原因,x轴的间隔为0.5。。。我希望它从1,2,3,4开始,等等。。而不是1、1.5、2、2.5、3、3.5等 这是我的代码供参考 let chart = dc.lineChart("#chart"); let ndx = crossfilter(results); let weekDimension = ndx.dimension(function (d) { return d
let chart = dc.lineChart("#chart");
let ndx = crossfilter(results);
let weekDimension = ndx.dimension(function (d) {
return d.week = +d.week;
});
function reduceAdd(p, v) {
++p.count;
p.total += v.capacity;
p.average = p.total / p.count;
return p;
}
function reduceRemove(p, v) {
--p.count;
p.total -= v.capacity;
p.average = p.count ? p.total / p.count : 0;
return p;
}
function reduceInitial() {
return { count: 0, total: 0, average: 0 };
}
let capacityGroup = weekDimension.group().reduce(reduceAdd, reduceRemove, reduceInitial);
chart.width(360)
.height(200)
.margins({ top: 20, right: 20, bottom: 50, left: 30 })
.mouseZoomable(false)
.x(d3.scale.linear().domain([1, 52]))
.renderHorizontalGridLines(true)
.brushOn(false)
.dimension(weekDimension)
.valueAccessor(function (d) {
return d.value.average;
})
.group(capacityGroup);
dc.renderAll('chart');
这就是结果的样子
{month : "1", capacity: "48"}
{month : "1", capacity: "60"}
{month : "2", capacity: "67"}
{month : "2", capacity: "60"}
{month : "2", capacity: "66"}
{month : "3", capacity: "52"}
{month : "3", capacity: "63"}
{month : "4", capacity: "67"}
{month : "4", capacity: "80"}
{month : "5", capacity: "61"}
{month : "5", capacity: "66"}
{month : "5", capacity: "54"}
我需要做什么来确保我的x轴间隔与数据集中的值一致?我试过做capacityChart.xAxis().tickFormat(d3.format('.0f'))代码>但是让x轴为1,1,2,2,3,3,4,4,5,5
任何帮助都将不胜感激 多亏了戈登,我才设法弄明白
我做了capacityChart.xAxis().ticks(maxWeek)
来解决这个问题您好,我很高兴能帮您回答这个问题,但是dc.js轴直接来自D3,因此您可能会更幸运地在没有dc.js标记的情况下搜索这个特定问题。我明白了,你会建议我试着问另一个没有dc标签的问题吗?我确实尝试过使用tickFormat,但这导致我的图形创建了重复的。是因为我的x轴只有5个值吗?我以前没有这个问题……没问题,我有时间会回答的。我在度假,所以可能需要几天时间。我的观点是:如果你搜索了一个答案却没有找到任何东西,那可能是因为这不是一个明确的[dc.js]问题。您可以尝试.ticks()
,这会影响ticks的数量。明白了!我也会试试做。滴答声()。我感谢你的帮助!或者.tickValues()
-我认为没有办法控制如何选择刻度-您可以指定一个近似数字,也可以指定精确的刻度。