scala - 在使用 scala-js-d3 应用更新之前过滤数据
问题描述
我正在使用scala-js-d3来绘制一些相当复杂的图形。出于性能原因,我想在应用转换之前过滤更新集。
到目前为止,我的代码如下所示:
def showData(a: Drawable): Boolean = // [...] determines if the data point should be visible
val selection: Update[Drawable] =
d3.select(s"#$parentElement")
.selectAll(s".$className")
.data(drawables.toJSArray, (a: Drawable) => a.id.toString)
selection.enter
.append("g")
// [...] drawing of the data point
selection
.attr("display", (a: Drawable) => if(showData(a)) "block" else "hidden") // (*2)
selection
.filter((a: Drawable) => showData(a)) // This is not possible? (*1)
.transition()
.duration(600)
.ease("linear")
.attr("transform", (a: Drawable) => /* [...] */)
在应用如图所示的转换之前,有什么方法可以过滤要更新的数据(*1)
?无论如何,这些数据点中的大多数都是不可见的,因此应用这些转换没有意义。
非常感谢任何帮助或提示!
编辑:在零件期间不能进行过滤,select
因为从可见到不可见的变化(见(*2)
)永远不会发生。
解决方案
推荐阅读
- javascript - 使用 JQuery 验证动态添加的选择字段(带有 MasterPage 的 ASP.NET WebForms)
- python - 如何在 Python Tkinter 中自动或无限次运行特定功能?
- java - java.util.Date 和 org.joda.time.DateTime 和 java.util.Calendar 哪个更好?
- nginx - 是否有一个选项可以用来限制缓存资源在 Nginx 中返回给客户端的次数?
- php - Wordpress:使用 PHP 脚本将短代码插入带有类的 div
- postgresql - 保持同一行的并发更新的完整性
- r - R中的实数和自然数
- php - LARAVEL 查询错误 'SELECT count() as aggregate from posts where posts . 已删除_at 为空'
- python - 从两个不同的列表中删除重复的行?
- python - 在 m+=z 之后程序不执行。为什么会这样?