NeoDash多折线图未显示不同颜色问题求助
问题解决:NeoDash折线图多颜色不显示的问题
核心问题分析
- 当前Cypher返回的是宽格式数据:每个年份对应一行,三个国家的数值作为独立列(
value_M、value_S、value_F),这种结构无法让NeoDash自动识别不同折线的类别,因此无法分配差异化颜色。 - 代码存在笔误:法国2019年的数据被错误设置为
year: 2020,会导致数据错乱,影响图表展示。
修正后的Cypher代码
以下代码将输出格式改为长格式(每行对应一个国家-年份-数值的组合),同时修正了笔误,适配NeoDash的折线图分组需求:
call gds.pageRank.stream("Morocco19") YIELD nodeId as names, score with gds.util.asNode(names).city AS city,score AS sm19 ORDER BY sm19 DESC, city asc call gds.pageRank.stream("FR19") YIELD nodeId as names, score with gds.util.asNode(names).city AS city,score AS sf19,sm19 ORDER BY sf19 DESC, city asc call gds.pageRank.stream("spaine19") YIELD nodeId as names, score with gds.util.asNode(names).city AS city,score AS ss19,sf19,sm19 ORDER BY ss19 DESC, city asc call gds.pageRank.stream("Morocco20") YIELD nodeId as names, score with gds.util.asNode(names).city AS city,score AS sm20,ss19,sf19,sm19 ORDER BY sm20 DESC, city asc call gds.pageRank.stream("FR20") YIELD nodeId as names, score with gds.util.asNode(names).city AS city,score AS sf20,sm20,ss19,sf19,sm19 ORDER BY sf20 DESC, city asc call gds.pageRank.stream("spaine20") YIELD nodeId as names, score with gds.util.asNode(names).city AS city,score AS ss20,sf20,sm20,ss19,sf19,sm19 ORDER BY ss20 DESC, city asc UNWIND [ {country: "morocco",year: 2019, TCF:sm19}, {country: "morocco",year: 2020, TCF:sm20}, {country:"spaine",year: 2019, TCF:ss19}, {country:"spaine",year: 2020, TCF:ss20}, {country:"france",year: 2019, TCF:sf19}, // 修正此处year为2019 {country:"france",year: 2020, TCF:sf20} ] as row RETURN row.year as year, row.country as country, row.TCF as TCF ORDER BY year, country
NeoDash可视化配置步骤
- 添加折线图组件后,进入数据配置面板
- 分别设置:
- X轴:选择
year字段 - Y轴:选择
TCF字段 - 分组(Group by):选择
country字段(这是让图表按国家自动分配折线颜色的关键)
- X轴:选择
- 保存配置,刷新图表即可看到不同颜色的折线
额外优化提示
原代码中多次调用pageRank.stream后未关联不同图的city字段,可能导致数据不匹配(比如每次取的是不同城市的分数)。如果需要对应同一城市的各年份数据,建议在查询中加入city的关联条件,确保数据对应准确。
内容的提问来源于stack exchange,提问作者khadija1234
相关产品推荐
相关产品推荐

