DC.JS 综合图表未显示最后一个值
DC.JS Composite Chart Not Displaying Last Value
我有一张复合 bar/line 图表,除了最后一根柱线外,所有图表都显示正确。数据包含 8 个日期的维度和两组值,一组用于条形图,一组用于折线图。我检查了维度和组的内容,都正确。
图表上的第 8 个 svg 存在,但条形图不显示,请参见附图。 SVG Inspector 显示一个矩形是用高度和宽度定义的,尽管图表上没有显示相应的条形图。
我玩过 .centerBar 和 .elasticX、.xAxisPadding 但没有成功。我也尝试过更改图表尺寸和边距。
用于显示图表的代码:
var firstWeek = d3.min(data, function (d) { return d.Week; });
var lastWeek = d3.max(data, function (d) { return d.Week; });
var compositeKPIChart = dc.compositeChart("#W-chart");
var KPIbChart = dc.barChart(compositeKPIChart);
var KPIlChart = dc.lineChart(compositeKPIChart);
compositeKPIChart.width(width)
.height(0.9*width/2)
.margins({ top: 10, right: 50, bottom: 30, left: 30 })
.dimension(weekDim)
.x(d3.time.scale().domain([firstWeek, lastWeek]))
.xUnits(d3.time.mondays)
.y(d3.scale.linear().domain([0, 100]))
.compose([
dc.barChart(compositeKPIChart).group(barGroup, "%"),
dc.lineChart(compositeKPIChart).group(lineGroup, "Standard")
])
.brushOn(false)
.xAxis().ticks(d3.time.mondays).tickFormat(d3.time.format("%d %b"));
如果元素存在但未显示,我首先要检查的是裁剪矩形。您可以在调试器中删除它(或重命名 link 以便引用被破坏)以查看您丢失的栏。
但这并不能解释为什么它一开始就不见了。可能是因为您的 X 域太小了。请注意,条形是左边的 - 与相应的刻度对齐(而线上的点显然没有宽度)因此您可能需要在域的顶部添加一周才能显示条形。
dc.js 倾向于从字面上理解域名,但在少数情况下除外。
我很惊讶 centerBar
没有帮助,如果是这样的话。
我有一张复合 bar/line 图表,除了最后一根柱线外,所有图表都显示正确。数据包含 8 个日期的维度和两组值,一组用于条形图,一组用于折线图。我检查了维度和组的内容,都正确。
图表上的第 8 个 svg 存在,但条形图不显示,请参见附图。 SVG Inspector 显示一个矩形是用高度和宽度定义的,尽管图表上没有显示相应的条形图。
我玩过 .centerBar 和 .elasticX、.xAxisPadding 但没有成功。我也尝试过更改图表尺寸和边距。
用于显示图表的代码:
var firstWeek = d3.min(data, function (d) { return d.Week; });
var lastWeek = d3.max(data, function (d) { return d.Week; });
var compositeKPIChart = dc.compositeChart("#W-chart");
var KPIbChart = dc.barChart(compositeKPIChart);
var KPIlChart = dc.lineChart(compositeKPIChart);
compositeKPIChart.width(width)
.height(0.9*width/2)
.margins({ top: 10, right: 50, bottom: 30, left: 30 })
.dimension(weekDim)
.x(d3.time.scale().domain([firstWeek, lastWeek]))
.xUnits(d3.time.mondays)
.y(d3.scale.linear().domain([0, 100]))
.compose([
dc.barChart(compositeKPIChart).group(barGroup, "%"),
dc.lineChart(compositeKPIChart).group(lineGroup, "Standard")
])
.brushOn(false)
.xAxis().ticks(d3.time.mondays).tickFormat(d3.time.format("%d %b"));
如果元素存在但未显示,我首先要检查的是裁剪矩形。您可以在调试器中删除它(或重命名 link 以便引用被破坏)以查看您丢失的栏。
但这并不能解释为什么它一开始就不见了。可能是因为您的 X 域太小了。请注意,条形是左边的 - 与相应的刻度对齐(而线上的点显然没有宽度)因此您可能需要在域的顶部添加一周才能显示条形。
dc.js 倾向于从字面上理解域名,但在少数情况下除外。
我很惊讶 centerBar
没有帮助,如果是这样的话。