根据属性更改节点颜色 - neo4j

Nic*_*ler 4 neo4j py2neo

我想根据属性更改节点的颜色:

说我有很多"人"节点.而且我希望那些住在纽约的人是红色的,而那些住在洛杉矶的人则是蓝色的.我该怎么写呢 在密码或py2neo?

jja*_*erg 8

Neo4j浏览器中节点和关系的样式由图形样式表(GRASS)控制,它是CSS的表兄弟.您可以通过:style在浏览器中键入来查看当前样式.要编辑它,您可以单击节点和关系并选择颜色和大小,或者您可以查看样式表(:style),下载它,进行更改,然后将其拖放回视图窗口.

不幸的是,对于您的情况,颜色只能控制a)所有节点和所有关系或b)节点按标签和按类型关系.属性只能用于节点/ rel上显示的文本.


aim*_*mme 6

无法以编程方式与 neo4j 浏览器交互。但最终目标可以通过黑客来实现。

即使我在这里有点晚,也想帮助其他可能找到方法的人。无法根据属性更改节点的颜色,但可以通过基于属性创建节点来实现。请记住,应用这些查询后,您的数据将不再相同。因此,保留数据备份始终是一个好主意。

这是默认情况下标签的着色方式(之前):

在此处输入图片说明

基于属性的颜色

假设有一个Case带有属性的标签,nationality并且您想根据国籍为节点着色。因此,以下查询可用于根据国籍属性创建标签。为此,您需要安装 apoc 库。在这里检查安装。

// 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 *
Run Code Online (Sandbox Code Playgroud)

这将返回所有国籍的人。现在您可以按国籍着色。下面是一个例子。

在此处输入图片说明

基于属性的颜色并加载其他标签

假设您还有一个名为 的标签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 *
Run Code Online (Sandbox Code Playgroud)

它将返回具有所有关系的案例和集群。下面显示示例。

在此处输入图片说明

如果这有帮助并且想让其他人知道这是一个可以接受的答案,请投赞成票。谢谢你。


Mar*_*sse 5

您不能在 neo4j 浏览器的 Cypher 查询中包含输出格式。目前,唯一的方法是手动更改图形视图或加载图形样式文件。

请参阅此处的教程:http : //neo4j.com/developer/guide-neo4j-browser/

此外,您无法从 py2neo 与 neo4j 浏览器进行交互。