问题标签 [protovis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1565 浏览

java - 在 javax.script 中加载 javascript 库?

我想从 Java 运行Protovis javascript 并获得评估的 SVG 代码。我正在使用 javax.script.* 来运行 Javascript:

这会抱怨,因为我从来没有像通常那样加载 Protovis 本身

在通过 javax.script 运行 Javascript 时,是否有一种好方法,除了将完整的 Javascript 导入 eval() 命令中来加载库?

0 投票
1 回答
1902 浏览

java - 使用 javax.script 或 Rhino 在具有浏览器上下文(例如 envjs)的 Java 中运行 javascript?

我正在尝试使用以下方式从 Java 程序运行Protovisjavax.script javascript :

为了运行它,JavaScript 引擎需要拥有 Web 浏览器的所有上下文。最好的选择似乎是envjs。不幸的是,JVM 中包含的 Rhino 版本似乎不是最新的,并且没有包含 envjs 所需的所有内容。

有没有人成功使用 javax.script 的浏览器上下文,或者我错过了什么?

这与以下问题有关:“我可以为在 Java6 Rhino 脚本引擎中运行的 javascript 创建一个‘窗口’对象吗”

0 投票
1 回答
460 浏览

protovis - 访问 Protovis 行中的值属性

我正在使用 Protovis Arc 布局,我想根据数据集中定义的“值”属性为节点之间的链接着色。我怎样才能访问它?

数据集的定义如下: Nodes: ... {nodeName:"Books"} ...

链接:... {source:1, target:4, value:20} ...

arc.link.add(pv.Line).strokeStyle(function(d) d.value > 10 ? "#cc0000" : "#eeeeee"); - 不工作

0 投票
2 回答
5779 浏览

javascript - 在打印时触发调整大小事件

我有一个 div,我在其中使用protovis创建图表。div 具有创建图表的代码width: 100%和用于在渲染时获取 div 的大小并用图表填充页面的代码。我捕获窗口上的调整大小事件并调整 div 和图表,以便在窗口调整大小时调整大小。 height: 100%$('#chart').width()$('#chart').height()

现在我需要打印。我希望当浏览器为打印机呈现页面时,它会发出调整大小,但它不会,至少 Safari 和 Firefox 不会。Chrome 做了一些奇怪的事情,它只调整高度而不调整宽度。有没有办法在打印之前触发这种行为?

编辑。考虑以下html

当我调整窗口大小时,div 的内容会发生变化。当我打印它时,渲染过程不会触发调整大小事件。

0 投票
3 回答
10218 浏览

javascript - Javascript:array.forEach() 有时不工作

这是我的代码片段,程序没有进入 foreach 循环:

当我将数组索引从字符串(“me”,“you”)更改为整数时,它可以工作:

你能帮我实现解决方案来迭代具有各种索引的数组吗?我的目标是存储给定日期对象的值。


我使用Protovis库和 AFAIK 的数据,它需要一个数组作为输入。

我在 protovis 示例中使用的数据结构比上面显示的要复杂。

在我的项目中,我通过 JavaBean 发送一组对象。这些对象包括日期。我的目标是在 protovis 网站 http://vis.stanford.edu/protovis/ex/area.html 上显示这些对象。

我将使用水平轴表示时间,垂直轴表示给定时间的对象数量。这就是为什么我想让数组按日期排序的原因,因为 AFAIK protovis 在默认模式下仅允许数组作为其图表的数据输入 - 函数链接。

编辑:现在我改变了方法。我没有将字符串存储为数组键,而是执行以下操作:特此是我的原始代码片段:
edit2:我添加了一些原始输入: var result2 = {"h": { 10 "documents": [ 11 { 12 "biographicalCategories": [ 13 ], 14 "body": "希腊保守政府已下令对 1955 年的协议进行调查中央情报局和希腊军方之间建立游击队网络,以在发生战争时与入侵的华约部队作战。”,15 个“描述符”:[16],17 个“通用在线描述符”:[18],19 个“guid ": 0, 20 "headline": "希腊调查游击战争计划", 21 "locations": [22 "GREECE" 23], 24 "names": [25], 26 "onlineDescriptors": [27], 28 个“在线位置”:[29],30 个“在线组织”:[31],32 个“在线人”:[33],34 个“在线标题”:[35],36 个“组织”:[37],38 个“人”:[39],40 个“发布日期”:“1990-11-21 00:00:00.0 CET”,41 个“源文件” : "0402635.xml", 42 "taxonomicClassifiers": [ 43 ], 44 "titles": [ 45 ], 46 "typesOfMaterial": [ 47 ], 48 "score": 0.80242133 49 },

edit3上面的代码现在可以工作了:

简而言之:我使用 tlk 数组将日期反映到索引中。对于 resultTmp 数组中的一个索引,我存储日期和与该日期相关的一组对象。我使用的下一部分代码将日期从最旧到最新排序,并类似地对 resultTemp 进行排序。resultTemp 的排序版本在结果数组中。

我通过以下方式在 protovis 中呈现数据:

示例结果如下所示: i.imgur.com / WODYA.png
我没有包含用于打印 x 和 y 轴以及从日期缩放到图形宽度的代码。您可以在 protovis 示例页面上找到示例。

顺便说一句:我很困惑为什么在这部分:

作为我得到“包含”的最后一个键?试图在互联网上找到答案,但没有成功。Bears 在他的评论中解释说,我得到这个问题的原因是因为我正在迭代数组的属性。

0 投票
1 回答
652 浏览

django - 在 Django 中使用 Protovis

我正在尝试让 Protovis 在我的 Django 站点中工作。这是我的示例代码:

当我直接在 Firefox 中打开此文件时,会同时显示 Protovis 'Hello World' 图像和字符串“{{ object.name }}”。

但是从我的 Django 服务器访问 .html 文件模板时,我只看到 {{ object.name }} (打印出的对象名称)。

到目前为止,我还没有发现类似的问题,以满足 Protovis 在 Django 中的使用。如果有人让它工作或知道我做错了什么,请告诉我。

谢谢,

0 投票
1 回答
202 浏览

javascript - 在 protovis 中提供非叶节点数据/值

我的数据看起来类似于:

这类似于他们在示例中建议为树结构布置数据的方式。我的问题是:如何给 node1 和 node4 赋值?

谢谢。

0 投票
1 回答
624 浏览

javascript - 在 Protovis 中处理多个数据对象(javascript 信息可视化)

我对尝试修剪并将一组数组移交给 Protovis 感到非常沮丧,这些数组只包含一组数据对象中的数字,看起来像下面这样,为每个对象绘制三个单独的饼图(pv.Wedge)......

从文档中,我被告知在 Protovis 中几乎不需要循环,但我似乎无法正确操作/解析 myData,所以我求助于显式循环。

我尝试了许多不同类型的循环,但我得到的最好的结果是在我希望饼图出现的空白区域下打印出数字。如果有人能给我暗示我应该做些什么来实现这一目标,我将不胜感激。目前我被困在 -

}

0 投票
1 回答
442 浏览

javascript - 如何为 protovis 流图制作动画?

我无法弄清楚如何为 protovis 流图制作动画。我认为最好的方法是简单地将一组i, j索引传递给.layers()并让.x()and.y()函数查找实际的更新值。有没有更简单的方法?

0 投票
2 回答
436 浏览

javascript - 打印 protovis 输出(以编程方式)

我正在考虑切换到 protovis 进行可视化。然而,让我怀疑的一件事 - 由于 protovis 在浏览器中将其输出创建为 div,我想知道是否有任何至少半自动的方式让我一次创建一堆图像而无需打开每个图像并按下“打印” “手动。

所以问题是:

  • 你认为我可以使用像 V8 这样的无浏览器 JS 引擎来执行代码并打印结果吗?
  • 我可以在浏览器中自动打开和打印吗?
  • 还有另一种方法可以从 protovis 获取自动图像吗?

谢谢,尼古拉斯