gpt4 book ai didi

javascript - 为什么同组渲染不出正确的折线图和对应的范围图?

转载 作者:行者123 更新时间:2023-11-30 14:24:23 26 4
gpt4 key购买 nike

在这里 fiddle :https://jsfiddle.net/8yf7j3k6/11/

我正在尝试为我的范围图表引入类似的数据表示,以便我可以在范围图表上进行擦洗,但在流通数据的实际折线图中使用工具提示。目前,我认为我有两个问题正在破坏我的交叉过滤器并导致范围图表看起来很奇怪:

  1. 如果我使用 crossfilter 生成的标准组,我最终得到的值是 (circulation data * number_of_regions_in_which_magazine_was_circulated)。为了绕过这个,我创建了一个 map 来跟踪区域的数量,并划分代表的值。我不知道如何为此创建一个组,并在数据级别处理它。因此,我只是在渲染步骤进行修正 - 这可能是我遇到问题的原因吗?

  2. 我为折线图和范围图使用了完全相同的组。在NASDAQ sample他们似乎以不同的方式处理数据,但似乎只是以不同的方式对数据进行分类,而不是进行重大更改。我不明白为什么我的图表在零点处有如此显着的负值。

下面违规图表的代码。请注意, fiddle 中有一些样板需要处理,因为没有用于日期格式的 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)

最佳答案

问题出在您的 CSS。

此规则适用于.line-chart-container任何 元素的每个 第一个子元素,也适用于画笔覆盖.

.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);

所有的条都有工具提示,你看不到它们,因为画笔正在捕捉所有的鼠标事件。也许可以禁用此图表的工具提示

关于javascript - 为什么同组渲染不出正确的折线图和对应的范围图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179803/

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