【发布时间】:2014-11-05 00:25:30
【问题描述】:
我的问题是我有一个用于计算节省的交叉过滤器组减少功能,但是当在图表上应用过滤器时,它似乎没有通过正确的过滤器。我也有一个类似的案例工作示例。
我创建了两个 jsbin,其中一个具有正确的行为。
在这种情况下,我有两年的数据,即 2010 年和 2014 年。但在 Savings(not working) 图表中,运营商饼图没有按年份过滤,而在 DIFOT(working) 图表中是这样。
链接是: DIFOT(工作):http://jsbin.com/bagohavehu/2/edit 节省(未按预期工作):http://jsbin.com/yudametulo/2/edit
非常感谢您的时间和精力。
问候, 动漫
【问题讨论】:
-
我不明白。他们似乎都为我过滤。 JS Bin 吐槽了一些分号,这里是 DIFOT jsbin.com/reyecutaqi/1/edit 和 Savings jsbin.com/nodibaraji/1/edit
-
您好 Gordon 感谢您的快速回复,我特别面临的问题是关于过滤正确的值。对于这两个图表集,我使用相同的数据,因此我只有一个 2010 年和承运人 1117 的记录。但在储蓄的情况下,当在年度饼图中选择 2010 年时,会显示所有承运人的记录。而 DIFOT 载波图表获取正确的年份过滤器,从而显示该特定年份的数据。谢谢。
-
在进一步的调查中,我发现如果我将 current 和 comparePrice 解析为 int 而不是 floats(我现在正在这样做),那么按年过滤的储蓄图表会出现预期的行为。希望这可以帮助。谢谢
-
我不确定你在计算什么,但由于你的 reduce 函数没有考虑到
count,这就是为什么它会忽略它们是否被过滤。例如,这是您示例的一个分支(作为 jsfiddle:更易于调试),计数乘以结果 - 不确定这对您的计算是否有意义,但它更好地反映了过滤器:jsfiddle.net/gordonwoodhull/9f6kzeus/11 -
非常感谢戈登。我使用 count 仅用于调试目的,我将在 reduce 函数中发布一个没有 count 的 bin。垃圾箱的链接是jsbin.com/tehulisipu/2/edit。如果您在 reduce 函数中将 parseFloat 更改为 parseInt,您将使过滤正常工作。希望这些信息有意义。谢谢。
标签: javascript dc.js crossfilter