22. 渲染引擎¶
22.1. 什么是细节层次 (LOD)?¶
Cytoscape 能够在显示大型网络(> 10,000 个节点)的同时保持交互速度。为了实现这一目标,显示网络时所采用的细节层次 (LOD) 是根据当前显示的节点和边的数量来确定的。例如,默认情况下,节点标签(如果存在)仅在可见节点少于 200 个时才会渲染,因为绘制文本是一个相对消耗资源的操作。这可能会导致一些不同寻常的行为。如果屏幕当前包含 198 个节点,则会显示节点标签。如果您平移网络使得现在显示 201 个节点,节点标签就会消失。再举一个例子,如果渲染的边与渲染的节点总和大于或等于默认值 4000,系统会选择非常粗糙的细节层次,此时边始终为直线,节点始终为矩形,且不进行抗锯齿处理。
此外,当与网络进行交互(例如平移、缩放、移动节点)时,Cytoscape 可能会暂时进一步降低细节层次。例如,在交互过程中可能不会显示边和图表。当停止与网络交互后,它将以更高的细节重新显示。
低 LOD 与 高 LOD
| 低 LOD 的网络 | 高 LOD 的网络 |
|---|---|
![]() | ![]() |
在低 LOD 值下,所有节点显示为正方形且关闭抗锯齿功能。在高 LOD 值下,开启抗锯齿功能,节点将显示为用户在“样式”(Style) 中指定的实际形状。
强制显示细节¶
如果您希望始终显示网络的所有细节而不受 LOD 值的影响,可以通过点击 视图 (View) → 始终显示图形细节 (Always Show Graphics Details)(Windows/Linux 下为 CTR+SHIFT+D,Mac 下为 Command+SHIFT+D)来切换到全细节模式,或者点击网络视图工具 (Network View Tools) 中的始终显示图形细节 (Always Show Graphics Details) 按钮
。此选项强制显示所有图形细节。如果网络较大,此选项会降低渲染速度。若要隐藏细节,请取消勾选该菜单项 (视图 (View) → 始终显示图形细节 (Always Show Graphics Details))。
控制 LOD 的参数¶
用于确定细节层次的默认值可以通过在 编辑 (Edit) → 首选项 (Preferences) → 属性… (Properties…) 下设置相关属性进行更改。
注意: 这些阈值设得越高,性能就会越慢。 如果您处理的是小型网络(几百个节点),这应该不成问题,但对于大型网络,它会导致明显的变慢。各项阈值描述如下。
注意: 从 Cytoscape 3.9 版本开始,即使选择了高细节层次,交互性也始终能够保持。通常即使对于非常大的网络,提高细节层次或强制显示全图形细节也是安全的。
| 参数 | 描述 |
|---|---|
| render.coarseDetailThreshold | 如果渲染的节点和渲染的边之和等于或超过此数值,将选择非常粗糙的细节层次,并且所有其他细节参数将被忽略。如果节点和边的总数低于此阈值,则将开启抗锯齿;此值默认为 4000。 |
| render.nodeBorderThreshold | 如果渲染的节点数量等于或超过此数值,将不渲染节点边框;此值默认为 400。 |
| render.nodeLabelThreshold | 如果渲染的节点数量等于或超过此数值,将不渲染节点标签;此值默认为 200。 |
| render.edgeArrowThreshold | 如果渲染的边数量等于或超过此数值,将不渲染边的箭头;此值默认为 600。 |
| render.edgeLabelThreshold | 如果渲染的边数量等于或超过此数值,将不渲染边的标签;此值默认为 200。 |
| render.hidpi | 此属性用于启用/禁用网络视图中的 HiDPI 模式。设置为 true 时,网络将在 4K 超高清和 Retina 显示器上以原生分辨率渲染。Cytoscape 3.9 新增功能。默认为 true。 |
| render.labelCache | 此属性用于启用/禁用渲染器标签缓存,启用后可显著提高渲染速度。Cytoscape 3.9 新增功能。默认为 true。 |
| render.edgeBufferPan | 此属性用于启用/禁用渲染器中的一项功能,该功能在平移网络时会移动边缓冲区,从而避免在某些情况下必须隐藏边。Cytoscape 3.9 新增功能。默认为 true。 |
打印网络或导出为 PostScript 等格式时,无论屏幕上当前显示的是什么,始终会选择最高细节层次。

