小编gso*_*sol的帖子

d3.js,使用d3.extent查找嵌套json值的最小值/最大值

我正在d3中构建一个气泡图,我希望气泡的颜色基于本地json文件中的logFC值。

我的json文件如下所示:

{
   "name": "genes",
   "children": [    
     {
       "value": "9.57E-06",
       "logFC": "-5.51658163",
       "symbol": "BCHE",
     },
     {
       "value": "0.0227",
       "logFC": "3.17853632",
       "symbol": "GRIA2",
     },
     {
       "value": "0.00212",
       "logFC": "-2.8868275",
       "symbol": "GRIN2A",
     }   
   ]
}
Run Code Online (Sandbox Code Playgroud)

该文件不是平坦的,这就是为什么我认为在使用d3.extent引用叶节点时遇到问题。我知道我可以使用:

var color1 = d3.scale.linear()
        .domain([-5.51658163,3.17853632])   //manually putting in min/max into the domain
        .range(["lightgreen", "green"]);
Run Code Online (Sandbox Code Playgroud)

但是我的数据会发生变化,并使代码动态化-我尝试了以下方法以及许多其他变体:

var color1 = d3.scale.linear()
        .domain([d3.extent(d3.values(data, function(data) { return +d.logFC;}))])
        .range(["lightgreen", "green"]);
Run Code Online (Sandbox Code Playgroud)

基本上,我在叶节点上使用d3.extent有麻烦。有没有一种简单的方法可以使用d3.extent查找logFC的最小值和最大值?

谢谢!

(PS,如果括号中有任何问题,那是我将数据复制到问题框中时犯的一个错误)

当我查看控制台编辑器时,我看到:

在此处输入图片说明

json d3.js

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

如何基于2列数据帧创建1s和0s的矩阵

以下是我的数据的示例(我拥有的实际是1300行,或两个不同节点之间的1300个连接/边):

node# node#
1  3
1  4
2  4
2  5
3  4
3  5
Run Code Online (Sandbox Code Playgroud)

我目前在数据框中有上述数据.这代表一个网络,汽车可以从节点1驱动到3或1到4,从节点2到4或节点2到5等.我想创建一个如下所示的矩阵:

>      [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    0    0    0    0    0    0
 [2,]    0    0    0    0    0    0
 [3,]    0    0    0    0    0    0
 [4,]    0    0    0    0    0    0
 [5,]    0    0    0    0    0    0
Run Code Online (Sandbox Code Playgroud)

我被卡住的地方:我想在离开节点的矩阵中输入1,在同一列中输入目标节点矩阵中的-1.因此对于这个6节点连接数据帧,矩阵看起来像:

>      [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    1    1    0    0    0    0
 [2,]    0    0    1    1    0    0 …
Run Code Online (Sandbox Code Playgroud)

r

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

标签 统计

d3.js ×1

json ×1

r ×1