I have a fairly simple hierarchical structure of nodes, but when vis.js draws them, the order of nodes on each level doesn't make much sense - there are a lot of crossed edges (screenshot: Default Layout )
I am hoping to get a layout similar to that given here: Expected Layout
My vis.js options are as follows;
{
"layout": {
"hierarchical": {
"direction": "LR",
"sortMethod": "directed",
"nodeSpacing": 200,
"treeSpacing": 400
}
},
"edges": {
"smooth": {
"type": "continuous"
}
}, …Run Code Online (Sandbox Code Playgroud) 我有一个网络,我正在使用vis.js构建,但它在宽度方面太大,无法放入页面的容器中.网络从左到右运行,包含有关特定进程的步骤.当一个人完成任务时,服务器会提供新的JSON记录来更新颜色.
由于布局,我无法更改容器大小.当网络加载时,它会导致字体非常小且不可读.有没有办法可以将缩放级别设置为一个选项,以便只显示该过程中的当前步骤?
function draw() {
test = null;
// create a network
var testContainer = document.getElementById('testing');
// create some nodes
var width = testing.clientWidth;
var nodes = [
{id: 1, x: 0, y: 1, label: 'Start', color: 'green', shape: 'circle'},
{id: 2, label: 'Step 2', shape: 'square'},
{id: 3, label: 'Step 3', shape: 'square'},
{id: 4, label: 'Step 4', shape: 'square'},
{id: 5, label: 'Step 5', shape: 'square'},
{id: 6, label: 'Step 6', shape: 'square'},
{id: 7, label: 'Step 7', …Run Code Online (Sandbox Code Playgroud) javascript visualization chap-links-library vis.js vis.js-network
我是JavaScript的新手,并使用vis.js来构建分层("UD")网络.我有一个问题:同一级别的许多边缘交叉.
在vis.js中是否有一种方法可以最小化交叉边缘?在我的例子中,我有一个简单的树,根本不应该有交叉的边.
我的问题与Hierarchical Layout中的vis.js级别排序有关
这是我的vis.js选项:
var options = {
edges: {
smooth: {
type: 'cubicBezier',
roundness: 0.4
}
},
layout: {
improvedLayout: true,
hierarchical: {
direction: "UD"
}
},
physics:false
};Run Code Online (Sandbox Code Playgroud)
你好,
在我的项目中,我使用 ReactJS 显示 vis.js 图,我希望显示的网络节点通过显示弹出窗口/工具提示对鼠标悬停事件做出反应。每个节点都有一个标题属性,这就是工具提示应该显示的内容。
这是他们在示例中的做法:
<!doctype html>
<html>
<head>
<title>Network | Interaction events</title>
<script type="text/javascript" src="../../../dist/vis.js"></script>
<link href="../../../dist/vis-network.min.css" rel="stylesheet" type="text/css" />
<style type="text/css">
#mynetwork {
width: 600px;
height: 400px;
border: 1px solid lightgray;
}
</style>
</head>
<body>
<div id="mynetwork"></div>
<script type="text/javascript">
// create an array with nodes
var nodes = new vis.DataSet([
{ id: 1, label: 'Node 1', title: 'I have a popup!' },
{ id: 2, label: 'Node 2', title: 'I have a popup!' },
{ id: …Run Code Online (Sandbox Code Playgroud) vis.js的操作方法仅包括addNodeMode(),而不包括addNode()。我想知道是否有一些不错的方法可以在点击时创建节点。可能是通过操纵数据而不是网络本身?
当然,可能会去
network.on('click',function(params){
if((params.nodes.length == 0) && (params.edges.length == 0)) {
network.addNodeMode(); // doesn't add, one more click needed
//# generate click in the same place. Use params.pointer.canvas
// or params.pointer.DOM to set appropriate coordinates
}
})
Run Code Online (Sandbox Code Playgroud)
但是我们还必须防止无限循环,因为我们在点击处理程序中生成了一个点击事件。
这是一个jQuery示例,用于在网络上绘制画布以选择多个节点:
怎么能把它翻译成React?
我在这个沙箱中设置react-graph-vis(源代码),并在图表中添加了一个参考:https:
//codesandbox.io/s/5m2vv1yo04
.getContext("2d")react-graph-vis方法mouseup,选择画布上绘制的框中的节点,并清除绘图也许我正朝着错误的方向前进.
在本例中,"level"用于控制节点放置的垂直位置(假设hierarchical.direction为up-down)。
但是,我没有找到如何为同一层次结构上的节点设置水平顺序。例如,如果我想放在node 6前面node 1,有没有办法做到这一点?
我的理解是水平顺序纯粹是由节点插入顺序决定的,对吗?
使用Vis.js创建网络图时,网络中的节点用标签绘制 - 对于我的用例 - 没有足够的“填充”,即节点标签文本和边界之间没有足够的空间节点。下图说明了它:
考虑到 Vis.js 中已有的大量配置选项,我认为增加标签填充会很简单,但对于我的生活,无法弄清楚如何去做。浏览了官方文档,并通过 StackOverflow 和 Google 搜索,但没有找到任何提示。感觉我错过了一些明显的东西 - 任何人都可以照亮吗?...
我正在使用 vis.js 在网页上创建网络图。
我的需要是以 JSON 格式将操作图存储到数据库中,从网络图中导出 json。
我没有找到任何有关它的文档,是否可以导出 vis.js 网络并存储经过操作的数据(以 JSON 或可转换为 JSON 的形式)?
我正在测试 VisJS 的网络图,我正在尝试找到一种将图像放入形状方形节点中的方法。我知道形状可以指定为,image但这只会使节点成为图像。
示例:此示例仅使用带有文本的常规节点形状,并希望在形状内添加图像。http://visjs.org/examples/network/nodeStyles/widthHeight.html
我的示例:我希望John Smith猫图像和标签位于方形节点中。
http://plnkr.co/edit/nKqOWWSu1yWxx3bPdHUw?p=preview。
想知道是否可以将text和image放在方形节点内?