在为使用 Neo4j 而启动的 localhost 页面上,很容易以不同的方式为特定节点着色。遵循 Neo4j 中包含的电影示例;红色的人,紫色的电影,单击按钮将一个变为橙色。
作为对此的扩展,我想为相同类型的节点着色,但以不同的方式具有不同的属性。按照这个例子;将性别作为属性添加到每个人节点,然后将男性着色为蓝色,女性着色为红色。
是否有可能在当前版本中实现这一点?我正在使用 Neo4j 社区 2.1.7。
编辑:有一个负责可视化的 .grass 文件的请求。这是负责为一类节点着色的一小段摘录。
node.Page {
color: #30B6AF;
border-color: #46A39E;
text-color-internal: #FFFFFF;
diameter: 80px;
border-width: 2px;
caption: '{pagename}';
font-size: 10px;}
最佳答案
即使我在这里有点晚,也想帮助其他可能找到方法的人。无法根据属性更改节点的颜色,但可以通过基于属性创建节点来实现。请记住,应用这些查询后,您的数据将不再相同。因此,保留数据备份始终是一个好主意。
这是默认情况下标签的着色方式(之前):
颜色基于属性
假设有一个标签叫 Case
有房产nationality
并且您想根据国籍为节点着色。因此,以下查询可用于根据国籍属性创建标签。为此,您需要安装 apoc 库。检查 here用于安装。
// BY NATIONALITY
MATCH (n:Case)
WITH DISTINCT n.nationality AS nationality, collect(DISTINCT n) AS persons
CALL apoc.create.addLabels(persons, [apoc.text.upperCamelCase(nationality)]) YIELD node
RETURN *
这将返回所有国籍的人。现在您可以按国籍着色。下面是一个例子。
颜色基于属性并加载其他标签
假设您还有一个名为
Cluster
的标签.案例通过关系附加到集群。只需将查询更改为以下即可获取集群及其与案例的关系。//BY NATIONALITY WITH CLUSTERS
MATCH (n:Case),(c:Cluster)
WITH DISTINCT n.nationality AS nationality,
collect(DISTINCT n) AS persons,
collect(DISTINCT c) AS clusters
CALL apoc.create.addLabels(persons, [apoc.text.upperCamelCase(nationality)]) YIELD node
RETURN *
它将返回具有所有关系的案例和集群。下面显示示例。
如果这有帮助并且想让其他人知道这是一个可以接受的答案,请投赞成票。谢谢你。
关于colors - Neo4j 中的着色节点取决于属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28859157/