小编Zac*_*chB的帖子

使用d3创建泳道图表

我需要生成类似于以下的泳道图表,但在Y轴上添加了显示日期.我需要显示的所有节点都是具有依赖关系的活动,没有流控制元素.

http://upload.wikimedia.org/wikipedia/commons/a/a5/Approvals.jpg

这可能是使用像d3这样的东西,还是有更好的javascript库用于这种类型的图表?我还没有看到任何类似的例子,所以如果有可能使用d3,我不知道我会从哪里开始.任何提示将非常感谢.

javascript d3.js

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

在Windows上构建d3.js(Cygwin) - "npm install"路径问题的良好解决方法?

我正在尝试在Windows下构建d3.js.我已经安装了cygwin来运行makefile.但是,作为make install的一部分,它调用'npm install',并且此调用失败:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
 Error: Cannot find module 'C:\cygdrive\c\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js'
   at Function._resolveFilename (module.js:332:11)
   at Function._load (module.js:279:25)
   at Array.0 (module.js:479:10)
   at EventEmitter._tickCallback (node.js:192:40)

Makefile:230: recipe for target `install' failed
make: *** [install] Error 1
Run Code Online (Sandbox Code Playgroud)

问题似乎是cygwin路径前缀('cygdrive\c')被添加到文件路径中(除此之外,路径是正确的).

我想知道这个问题是否有一个好的解决方法?我试图导出NODE_PATH变量以及在Makefile中更改它.但是,这不会影响此错误(我宁愿保持Makefile不变).

编辑:当我从Webstorm命令行(没有cygwin)调用'npm install'时它工作.我必须手动安装contextify(jsdom要求)('npm install contextify -f'然后将.node文件从https://github.com/Benvie/contextify/downloads复制到build/Release for contextify),然后运行之后'npm install jsdom'和'npm install vows'.

cygwin npm d3.js

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

从Node.js调用C++库(Node addons/node-ffi)

我正在尝试将外部C++库(我可以访问.so文件以及头文件)集成到我的Node.js应用程序中.

经过大量研究后,我的选择减少到:

  1. 编写节点插件

  2. 使用node-ffi

从node-ffi的gitHub的定义我无法判断它是否会直接在C++库上运行:

node-ffi是一个Node.js插件,用于使用纯JavaScript加载和调用动态库.它可用于创建与本机库的绑定,而无需编写任何C++代码.

所以我的问题是:

  • 选项1)是否意味着以某种方式重写外部C++库?
  • node-ffi是否能够直接调用C++库而不需要编写任何类型的C包装器?

I'm no expert when it comes to C/C++ so if I missed something basic for you to be able to answer please let me know so I can improve my question.

node.js node-ffi node.js-addon

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

如何在d3.js中创建"斜率图"

定量信息的视觉显示中,爱德华·图夫特(Edward Tufte)创造了一个术语"斜率图",用于表示非常小的图表(更多信息).权威示例如下所示:

斜率图的示例

有在slopegraph至少两个实现d3.js在日野:

我对一个更具说明性的实现进行了尝试,并且还保留了两列中值之间的100%对应关系,但是卡住了.正如预期的那样,当数据集中出现具有相似或相同值的项目时,图形会重叠,并且图表不可读.

幼稚版本()使用linear用于计算水平位置刻度,而企图"正常化"的位置()使用ordinal的规模.

我相信使用序数量表可以获得更好的结果,根据重叠项的坐标计算偏移量.是否应为两列分别计算偏移量,是应根据数据预先计算,还是在设置属性时动态计算?如何扩展代码库,使具有相同值的项目位于彼此之下,其他项目也相应调整,两列中的值保持在同一水平位置?

visualization d3.js

8
推荐指数
2
解决办法
4435
查看次数

合并矢量和data.frame匹配列值和矢量值

我有

vetor <- c(1,2,3)
data <- data.frame(id=c('a', 'b', 'a', 'c', 'a'))
Run Code Online (Sandbox Code Playgroud)

我需要一个data.frame输出,将每个向量值与特定的id匹配,从而产生:

  id vector1
1  a       1
2  b       2
3  a       1
4  c       3
5  a       1
Run Code Online (Sandbox Code Playgroud)

r

7
推荐指数
1
解决办法
2万
查看次数

在asm.js中转换int [ish]和double [ish]

如果我需要,比如在asm.js模块中找到数字的整数部分和小数部分,我该怎么办?没有标准运算符在intish和doubleish类型之间进行转换; 甚至Math.floor返回一个double,其结果也不能强制转换为int.

var floor = stdlib.Math.floor;

function(n) {
    n = +n;
    var a = 0;
    a = floor(n)|0; // fails: "Operands to bitwise ops must be intish"
    var b = 0.0;
    b = +(n-a); // would fail if compiler got to here
    return;
}
Run Code Online (Sandbox Code Playgroud)

javascript firefox asm.js

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

AngularJs Ng-Keypress活动工作错误?

我正在Angularjs开发一个应用程序.我在input type = text中使用ng-keypress事件.在文本中键入值时,我在按键功能中得到错误的值.例如,如果我输入"1",我第一次得到undefined.第二次,键入任何其他值将给出第一个值

<input ng-model="NodeId_1" type="text" ng-keypress="getValue()"/>

 var angularapp = angular.module('nameapp', []);

    angularapp.controller('NameCtrl', function ($scope) {
        $scope.getValue = function () {
            alert($scope.NodeId_1);//Here first time undefined is coming and second what ever we enter first value will come
        }
    }
 )
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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

从存储为节点缓冲区的字节数组创建类型化数组

从关于从Buffers创建类型化数组的节点文档中:

缓冲区的内存被解释为数组,而不是字节数组.也就是说,使用元素new Uint32Array(new Buffer([1,2,3,4]))创建一个4 Uint32Array元素[1,2,3,4],而不是Uint32Array使用单个元素[0x1020304][0x4030201].

这与普通的javascript形成对比,其中从ArrayBuffer创建类型化数组视图使用ArrayBuffer的内存作为字节(就像reinterpret_cast在C++中一样).在节点缓冲区上操作时,我在节点中需要这种行为.

我可以将Buffer转换为ArrayBuffer,但这对我的应用来说太慢了.(我已经尝试了很多方法 - 但它们都是O(n)时间.)(编辑:我发现的最快的方法就是这个,这是一个单一的memmove操作并且相当快,但至少仍然是瞬间的在释放对原始缓冲区的引用之前的2x内存消耗.)

是否有任何(快速/ O(1))方法从Buffer获取一个类型化数组,使用Buffer的内容作为字节而不是元素?(不用说,所需的类型化数组元素大小> 1个字节.)

node.js

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

如何使用C++插件中内置模块的node.js

我需要在我的C++插件中使用内置模块'crypto'的node.js.我试图找到使用内置模块的C++插件的例子,但是失败了.我查看了node_crypto.h/.cc,与node.js加密文档,受保护的构造函数等相比,它具有如此不同的函数签名.node_crypto.h包含带有一个参数的InitCrypto()声明,但是node_crypto.cc没有这样的定义.功能.只有InitCrypto有四个参数.我试过用一个参数使用InitCrypto并得到"符号查找错误".

我可以将require('crypto')的结果传递给我的插件,然后使用这个对象,但这是不安全的.我们的JS代码可以在客户端的服务器上运行.

现在我觉得C++插件使用像openssl lib而不是内置节点模块'crypto'的smth更简单.

所以我需要一些使用C++插件的工作示例,它使用'crypto'模块或链接到一些关于此的文章.

使用C++插件中的任何内置模块的任何示例都会有所帮助.

javascript c++ v8 node.js node.js-addon

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

D3:精炼序数规模以返回颜色组?

我在D3.js中设置了如下的序数比例,到目前为止效果很好:

var color = d3.scale.ordinal().range([ 'blue', 'red', 'green' ]); 
color.domain();  
console.log(color(0)); // returns 'blue'
Run Code Online (Sandbox Code Playgroud)

但是,我真正想做的是能够将两个数字传递到刻度中,并让它返回蓝色,红色或绿色的特定子阴影 - 主要阴影取决于第一个数字,子阴影取决于第二个数字.

也许我可以用某种方式将d3.scale.ordinal()d3.interpolateRgb()结合起来做到这一点?我不确定interpolateRgb是否是正确的选择,因为颜色是一致的,取决于输入数字.

所以这就是我想要实现的目标:

color(0, 256); // return a shade of blue
color(0, 257); // return a second shade of blue
color(0, 256); // return the first shade of blue again
Run Code Online (Sandbox Code Playgroud)

在D3中实现这一目标的任何想法?谢谢您的帮助.

javascript d3.js

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