colors - Neo4j 中的着色节点取决于属性

标签 colors neo4j graph-databases

在为使用 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;}

最佳答案

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

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

enter image description here

颜色基于属性

假设有一个标签叫 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 *

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

enter image description here

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

假设您还有一个名为 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 *

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

enter image description here

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

关于colors - Neo4j 中的着色节点取决于属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28859157/

相关文章:

neo4j - 使用 neo4j 复制作为架构的一部分

neo4j - 使用 EmbeddedGraphDatabase 在服务器模式下访问 Neo4j?

apache-spark - TigerGraph - 通过 Spark 将数据加载到用户定义的元组

database - 如何浏览远程Neo4j数据库?有 REST 客户端吗?

c# - RichTextBox 从删除的 'keywords' 中移除颜色

java - 褪色算法不起作用?

linux - NEO4J : ERROR: Unable to find java. (无法执行/usr/lib/jvm/java-7-oracle/jre/bin/java/bin/java)

database-design - Neo4j/Strategy 以保留节点更改的历史记录

r - scale_fill_discrete 和 scale_fill_manual - 图例选项混淆

c# - 在 XAML 中使用样式从设置中绑定(bind) Drawing.Color