在这里拨弄:https://jsfiddle.net/8yf7j3k6/11/
我正在尝试为距离图引入类似的数据表示形式,以便可以在距离图上进行擦洗,但要在流通数据的实际折线图中使用工具提示。目前,我认为我遇到了两个问题,这些问题打破了我的交叉过滤器,并导致范围图看上去很混乱:
如果使用由交叉过滤器生成的标准组,则最终得到的值是(流通数据* number_of_regions_in_which_magazine_was_circulated)。为了绕过这个问题,我创建了一个地图,该地图跟踪区域的数量并划分了代表的值。我不知道如何为此创建一个组,并在数据级别处理它。结果,我只是在渲染步骤中进行了校正-这可能是造成麻烦的原因吗?
我正在为折线图和范围图使用完全相同的组。在NASDAQ sample中,他们似乎对数据进行了不同的处理,但似乎他们只是在对数据进行不同的装箱,而没有进行重大更改。我不明白为什么我的图在零点处具有如此大的负值。
以下违规图表的代码。请注意,由于没有用于dateformat的CDN,因此在提琴中有一些样板可以解决。
lineChart1
.width(lineChart1Width-50)
.height(lineChart1Height-50)
.xUnits(d3.timeMonths)
.margins({ top: 10, right: 10, bottom: 20, left: 80 })
.dimension(dimension1)
.rangeChart(lineChart1Range)
.group(circulationGroup1)
.colors(colorScales.blue[colorScales.blue.length - 1])
.elasticY(true)
.brushOn(false)
.valueAccessor(function (d) {
return d.value / circulationValuesMap[d.key]
})
.title(function (d) {
return `${d.key.format('mmm dd, yyyy')}\nCirculation: ${d.value / circulationValuesMap[d.key]} `
})
.x(d3.scaleTime().domain([new Date(1925, 0, 1), new Date(1927, 0, 1)]))
.render()
lineChart1Range
.width(getWidth('line-chart-1-range')) /* dc.barChart('#monthly-volume-chart', 'chartGroup'); */
.height(40)
.margins({top: 0, right: 50, bottom: 20, left: 80})
.dimension(dimension1)
.group(circulationGroup1)
.valueAccessor(d => d.value / circulationValuesMap[d.key])
.centerBar(true)
.x(d3.scaleTime().domain([new Date(1925, 0, 1), new Date(1927, 0, 1)]))
.round(d3.timeMonth.round)
.alwaysUseRounding(true)
.xUnits(() => 200);
lineChart1Range.yAxis().ticks(0)
答案 0 :(得分:2)
问题在于您的CSS。
此规则适用于.line-chart-container
内 any 元素的每个的第一个子元素,也适用于画笔覆盖层。
.line-chart-container :nth-child(1) {
height: 15em;
}
:nth-child(2)
也是如此。
为实际的div
元素替换2个CSS高度规则
#line-chart-1 {
height: 15em;
}
#line-chart-1-range {
height: 2em;
}
删除2个大条形图。
折线图和范围图也不对齐,它们的宽度和边距不同。
lineChart1Range
//.width(getWidth('line-chart-1-range')) /* dc.barChart('#monthly-volume-chart', 'chartGroup'); */
.width(lineChart1Width-50)
.height(40)
//.margins({top: 0, right: 50, bottom: 20, left: 80})
.margins({top: 0, right: 10, bottom: 20, left: 80})
.dimension(dimension1)
.group(circulationGroup1)
.valueAccessor(d => d.value / circulationValuesMap[d.key])
.centerBar(true)
.x(d3.scaleTime().domain([new Date(1925, 0, 1), new Date(1927, 0, 1)]))
.round(d3.timeMonth.round)
.alwaysUseRounding(true)
.xUnits(() => 200);
所有的条都有工具提示,因为画笔捕获了所有鼠标事件,所以您看不到它们。也许可以禁用此图表的工具提示