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

这可能是使用像d3这样的东西,还是有更好的javascript库用于这种类型的图表?我还没有看到任何类似的例子,所以如果有可能使用d3,我不知道我会从哪里开始.任何提示将非常感谢.
我正在尝试在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'.
我正在尝试将外部C++库(我可以访问.so文件以及头文件)集成到我的Node.js应用程序中.
经过大量研究后,我的选择减少到:
从node-ffi的gitHub的定义我无法判断它是否会直接在C++库上运行:
node-ffi是一个Node.js插件,用于使用纯JavaScript加载和调用动态库.它可用于创建与本机库的绑定,而无需编写任何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.
在定量信息的视觉显示中,爱德华·图夫特(Edward Tufte)创造了一个术语"斜率图",用于表示非常小的图表(更多信息).权威示例如下所示:

有在slopegraph至少两个实现d3.js在日野:
我对一个更具说明性的实现进行了尝试,并且还保留了两列中值之间的100%对应关系,但是卡住了.正如预期的那样,当数据集中出现具有相似或相同值的项目时,图形会重叠,并且图表不可读.
的幼稚版本(源)使用linear用于计算水平位置刻度,而企图"正常化"的位置(源)使用ordinal的规模.
我相信使用序数量表可以获得更好的结果,根据重叠项的坐标计算偏移量.是否应为两列分别计算偏移量,是应根据数据预先计算,还是在设置属性时动态计算?如何扩展代码库,使具有相同值的项目位于彼此之下,其他项目也相应调整,两列中的值保持在同一水平位置?
我有
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) 如果我需要,比如在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) 我正在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) 从关于从Buffers创建类型化数组的节点文档中:
缓冲区的内存被解释为数组,而不是字节数组.也就是说,使用元素
new Uint32Array(new Buffer([1,2,3,4]))创建一个4Uint32Array元素[1,2,3,4],而不是Uint32Array使用单个元素[0x1020304]或[0x4030201].
这与普通的javascript形成对比,其中从ArrayBuffer创建类型化数组视图使用ArrayBuffer的内存作为字节(就像reinterpret_cast在C++中一样).在节点缓冲区上操作时,我在节点中需要这种行为.
我可以将Buffer转换为ArrayBuffer,但这对我的应用来说太慢了.(我已经尝试了很多方法 - 但它们都是O(n)时间.)(编辑:我发现的最快的方法就是这个,这是一个单一的memmove操作并且相当快,但至少仍然是瞬间的在释放对原始缓冲区的引用之前的2x内存消耗.)
是否有任何(快速/ O(1))方法从Buffer获取一个类型化数组,使用Buffer的内容作为字节而不是元素?(不用说,所需的类型化数组元素大小> 1个字节.)
我需要在我的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++插件中的任何内置模块的任何示例都会有所帮助.
我在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中实现这一目标的任何想法?谢谢您的帮助.