Javascript 如何在Vis.js网络图的节点中增加标签填充?

Javascript 如何在Vis.js网络图的节点中增加标签填充?,javascript,css,vis.js,vis.js-network,Javascript,Css,Vis.js,Vis.js Network,使用创建网络图时,网络中的节点使用的标签(在我的用例中)没有足够的“填充”,即节点标签文本和节点边框之间没有足够的空间。下图对此进行了说明: 考虑到Vis.js中已经有大量的配置选项可用,我认为增加标签填充会很简单,但就我而言,我不知道如何做到这一点。已经浏览了官方文档,并搜索了StackOverflow和Google,但没有发现任何提示。感觉我错过了一些显而易见的东西-有人能帮我解释一下吗?…我也遇到了同样的问题。我找到的唯一解决方案是将节点的borderWidth和borderWidthS

使用创建网络图时,网络中的节点使用的标签(在我的用例中)没有足够的“填充”,即节点标签文本和节点边框之间没有足够的空间。下图对此进行了说明:


考虑到Vis.js中已经有大量的配置选项可用,我认为增加标签填充会很简单,但就我而言,我不知道如何做到这一点。已经浏览了官方文档,并搜索了StackOverflow和Google,但没有发现任何提示。感觉我错过了一些显而易见的东西-有人能帮我解释一下吗?…

我也遇到了同样的问题。我找到的唯一解决方案是将节点的
borderWidth
borderWidthSelected
设置为我想要的填充量。要使其看起来不太难看,还可以将边框设置为与节点背景相同的颜色


此外,它还为图形提供了一个漂亮的现代平面外观。

此属性尚不可自定义,但我设法在
vis.js
源文件中直接对其进行了更改:

  • 搜索Box类定义:
    var Box=function(\u NodeBase)
  • 在调整大小功能中,有要修改的边距:
    var margin=5
  • 把它改成你想要的,它就完成了

我找到了它——至少它对我有用vis@4.20.1我用npm安装了它。它们使用边距修改边框和标签文本之间的间距

您传入的选项对象,它需要
节点上的
边距
属性,如下所示:

const options = {
  nodes: {
    margin: 10
  }
}
const options = {
  nodes: {
    margin: {
      top: 10,
      bottom: 20,
      left: 5,
      right: 5
  }
}
您还可以为顶部、底部、右侧和左侧指定不同的页边距,如下所示:

const options = {
  nodes: {
    margin: 10
  }
}
const options = {
  nodes: {
    margin: {
      top: 10,
      bottom: 20,
      left: 5,
      right: 5
  }
}
除了px,我似乎什么都不能指定——我尝试使用“1em”作为输入,但它似乎只接受整数值——并以像素表示


如果您好奇,我从
node\u modules\vis\lib\network
中的
options.js
文件中找到了所需的信息。如果您正在为vis的其他区域(如timeline)寻找选项,我打赌在类似的文件夹中会有一个选项文件。

事实上,我也使用了同样的解决方法。它确实有几个缺点-例如,节点上不再有边框,因为您的边框现在实际上是背景的一部分。此外,这意味着您不能再使用半透明节点-也就是说,使用
alpha<1
颜色作为节点背景。这是因为如果您在边框上使用相同的半透明颜色,边框和背景将重叠(边框居中绘制),最终会出现不需要的“内边框”……Per Hornshøj-Schierbeck的答案对您有用吗?如果是这样,请将其标记为已接受(它对我很有效)