需要在折线图中显示一行,并具有移动图块的功能,查看最大比特率值的行,查看悬停时的标签和轴指针以及表格和时间Slider.Y分组的Y维度,需要显示“比特率”总计”或“比特率平均”(如代码中所定义)。X维度需要显示15分钟的间隔(以周为单位)。
我可以将数据上传到表格中,但不能上传到折线图中。我可以使用.renderDataPoints()看到图形上的点,但是没有线条。我检查了数据-找不到返回的任何null / NaN值,未使用任何旧版本的颜色。
可以在https://jsfiddle.net/dani2011/bu2ag0f7/8/中找到该代码。试图用var数据替换我的CSV,但目前在提琴中什么也没有显示。整个代码显示在https://groups.google.com/forum/#!topic/dc-js-user-group/MEslyF2RWRI
任何帮助将不胜感激。
这是我如何将数据放入jsFiddle的答案。基本上,将其粘贴在HTML的未使用标签中是最简单的。bl.ocks.org / blockbuilder.org更容易做到这一点。
这是您以这种方式加载数据的小提琴的一部分:http : //jsfiddle.net/gordonwoodhull/bu2ag0f7/17/
我还必须从列名中删除空格,因为这些空格会d3.csv
造成混淆并导致BITRATE
计算失败。
渲染器内部还存在一些杂乱的代码,但由于抱怨dim
不存在而失败了。
数据未显示的主要原因是输入组未生成可用的汇总数据。您的数据在时间上非常接近,因此按周汇总将汇总所有内容。
调试此问题的方法是在图表初始化之前放置一个断点或console.log并查看group.all()的结果
在这种情况下,bitrateWeekMinIntervalGroupMove和minIntervalWeekBitrateGroup返回一个具有一个键/值对的数组。一点都不能画线。:)
看来您最初希望以15分钟为间隔进行汇总,所以让我们开始吧。
无论出于何种原因,交叉过滤器中都有两个聚合级别,即维度级别和组级别。该维度将首先在生成密钥时出现裂缝,然后该组将进一步优化这些密钥。
您的min15函数会将每个时间键映射到之前的15分钟标记,但它需要的分辨率高于15分钟的数据。因此,让我们将这些组放在尚未映射到较低分辨率的dateDimension上:
var minIntervalWeekBitrateGroup = dateDimension.group(min15).reduceSum(function (d) {
return +d.BITRATE
});
var bitrateWeekMinIntervalGroupMove = dateDimension.group(min15).reduce(
...
太好了,现在有30个数据点。它画线。
我将点缩小了一点:),因为在30像素处很难看到线条。
使用范围图放大可显示更多行:
reduce函数(或某处)似乎仍然存在故障,因为当您放大得太远时,线条会降为零,但希望这足以使您再次移动。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句