小编luc*_*ons的帖子

d3.js Sankey图:矩形填充颜色

所以我正在玩d3.js Sankey图.

在此输入图像描述

此示例中(如上图所示),使用定义颜色

var color = d3.scale.category20();
Run Code Online (Sandbox Code Playgroud)

对于每个节点,都有一个矩形,并通过更改样式填充该矩形:

.style("fill", function(d) {
    return d.color = color(d.name.replace(/ .*/, ""));
})
Run Code Online (Sandbox Code Playgroud)

我在寻找使用自定义颜色的建议.如果我只想使用6种颜色,但是根据.json文件中的值选择节点矩形颜色.

例如,假设我想在美国国家橄榄球联盟中展示一个有关球队的蛇形图表.颜色各自代表球队所在的分区.因此,如果他们移动到不同的分区,颜色会发生变化.并且每个季节都会创建节点.沿着那条线的东西.

那么有可能运行

node.append("rect")
    .attr("height", function(d) { return d.dy; })
    .attr("width", sankey.nodeWidth())
    .style("fill", function(d) {
        return d.color = color(d.name.replace(/ .*/, ""));
    })
    .style("stroke", function(d) {
        return d3.rgb(d.color).darker(2);
    })
   .append("title")
    .text(function(d) { return d.name + "\n" + format(d.value); });
Run Code Online (Sandbox Code Playgroud)

使用基于json文件中的值的颜色?我在想一个if语句,但有更简单的方法吗?我可以在json中包含十六进制颜色代码吗?

d3.js sankey-diagram

6
推荐指数
2
解决办法
3万
查看次数

由于转义字符,python中的Json打印输出与写输出不同

我有一个管道分隔文件,我试图使用python(2.7)转换为json.代码读取文本文件,根据分隔符转换它,然后将其转换为json.

当我运行代码时,终端窗口中的输出是正确的.但是,当我写入文件时,转义斜杠\将被添加到输出中.并且没有转义的引号被添加到输出文件的开头和结尾.

基于其他答案,我每次处理json转储时都尝试将ensure_ascii设置为false.但那不起作用.

input.txt中:

392|0|9
Run Code Online (Sandbox Code Playgroud)

码:

import csv
import json

f = open( 'input.txt', 'rU')
reader = csv.DictReader( f, fieldnames = ( "A", "B", "C" ), delimiter='|')
out = json.dumps([ row for row in reader ], ensure_ascii=False)
print out
with open('data.json', 'w') as outfile:
  json.dump(out, outfile, ensure_ascii=False)
Run Code Online (Sandbox Code Playgroud)

终端输出:

[{"A": "392", "C": "9", "B": "0"}]
Run Code Online (Sandbox Code Playgroud)

data.json中的输出:

"[{\"A\": \"392\", \"C\": \"9\", \"B\": \"0\"}]"
Run Code Online (Sandbox Code Playgroud)

我是Python的新手.如何删除引号(在开头和结尾)和.json文件中的斜杠?

python csv json

5
推荐指数
1
解决办法
1754
查看次数

d3.js json uncaught语法错误意外令牌o

另一个d3问题.

我正在使用打包的泡泡示例,我已经到了一个点,我试图弄清楚如何在没有外部.json文件的情况下加载数据.这将是最终不允许.json文件的服务器,我宁愿不尝试使用jsonp加载数据.

所以我试图创建一个版本,将数据存储为代码中的变量.

var jsonl = {"name": "","children": [{"name": "A","children": [{"name": "AA","children": [{"name": "AAB", "size": "10", "area": "10"}]},{"name": "AB","children": [{"name": "ABB", "size": "20", "area": "20"}]}]}]};
Run Code Online (Sandbox Code Playgroud)

我收到一个未被捕获的语法错误意外令牌o错误但是.我通过JSLint运行json,它说它很好,所以我不确定意外的令牌是什么.

我把代码放在jsfiddle上.

http://jsfiddle.net/9zpAN/

有任何想法吗?

json d3.js

1
推荐指数
1
解决办法
3112
查看次数

标签 统计

d3.js ×2

json ×2

csv ×1

python ×1

sankey-diagram ×1