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

How to increase label padding in the nodes of a Vis.js network graph?

使用 Vis.js 创建网络图时,网络中的节点是用标签绘制的 - 对于我的用例 - 没有足够的 'padding',即节点标签文本与节点边框之间的space不足。下图说明了这一点:

考虑到 Vis.js 中已经提供了大量的配置选项,我认为增加标签填充会很简单,但对于我来说,不知道该怎么做。浏览了官方文档,并搜索了 Whosebug 和 Google,但没有找到任何提示。感觉我遗漏了一些明显的东西 - 任何人都可以阐明吗?...

我刚刚遇到了同样的问题。我找到的唯一解决方案是将节点的 borderWidthborderWidthSelected 设置为我想要的填充量。为了不至于太难看,还可以把border设置成和节点背景一样的颜色。

此外,它使图形具有漂亮的现代平面外观。

这个 属性 还不能自定义,但是我设法直接在 vis.js 源文件中更改它:

  • 搜索框 class 定义:var Box = function (_NodeBase)
  • resize函数中有边距可以修改:var margin = 5;
  • 改成你想要的,就大功告成了

我找到了 - 至少它适用于我用 npm 安装的 vis@4.20.1。他们使用边距修改边框和标签文本之间的space。

你传入的选项对象,它需要在 nodes 属性 上有一个 margin 属性 像这样:

const options = {
  nodes: {
    margin: 10
  }
}

您还可以像这样为上、下、右、左指定不同的边距:

const options = {
  nodes: {
    margin: {
      top: 10,
      bottom: 20,
      left: 5,
      right: 5
  }
}

除了 px,我似乎无法指定任何东西 - 我尝试使用“1em”作为输入,但它似乎只接受整数值 - 并以像素表示。

如果您好奇的话,我从位于 node_modules\vis\lib\networkoptions.js 文件中找到了我需要的信息。如果您正在寻找 vis 的其他区域(如时间线)的选项,我敢打赌在类似的文件夹中有一个选项文件。