visjs入门--模块edges

本文主要介绍visjs库中edges模块的使用,强调每个edge的ID不应全局定义,而应独立设定。边缘的选项可以在全局对象中定义,但每个edge也可有自己的特定选项,覆盖全局设置。如果将某个选项设为NULL,将恢复其默认值。同时提供了相关链接以供进一步学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

edges

edges的选项必须包含在标题为“edges”的对象中。所有这些选项也可以每个edges提供。显然,“ID”不应该全局定义,而是每个edges的定义。在全局edges对象中定义的选项应用于所有edges。如果一个edges有自己的选项,那么这些边将被用来代替全局选项。

当您给了一个edges一个选项时,您将重写该属性的全局选项。如果您将该选项设置为NULL,则它将返回到默认值。

// these are all options in full.
var options = {
  edges:{
    arrows: {
      to:     {enabled: false, scaleFactor:1, type:'arrow'},
      middle: {enabled: false, scaleFactor:1, type:'arrow'},
      from:   {enabled: false, scaleFactor:1, type:'arrow'}
    },
    arrowStrikethrough: true,
    chosen: true,
    color: {
      color:'#848484',
      highlight:'#848484',
      hover: '#848484',
      inherit: 'from',
      opacity:1.0
    },
    dashes: false,
    font: {
      color: '#343434',
      size: 14, // px
      face: 'arial',
      background: 'none',
      strokeWidth: 2, // px
      strokeColor: '#ffffff',
      align: 'horizontal',
      multi: false,
      vadjust: 0,
      bold: {
        color: '#343434',
        size: 14, // px
        face: 'arial',
        vadjust: 0,
        mod: 'bold'
      },
      ital: {
        color: '#343434',
        size: 14, // px
        face: 'arial',
        vadjust: 0,
        mod: 'italic',
      },
      boldital: {
        color: '#343434',
        size: 14, // px
        face: 'arial',
        vadjust: 0,
        mod: 'bold italic'
      },
      mono: {
        color: '#343434',
        size: 15, // px
        face: 'courier new',
        vadjust: 2,
        mod: ''
      }
    },
    hidden: false,
    hoverWidth: 1.5,
    label: undefined,
    labelHighlightBold: true,
    length: undefined,
    physics: true,
    scaling:{
      min: 1,
      max: 15,
      label: {
        enabled: true,
        min: 14,
        max: 30,
        maxVisible: 30,
        drawThreshold: 5
      },
      customScalingFunction: function (min,max,total,value) {
        if (max === min) {
          return 0.5;
        }
        else {
          var scale = 1 / (max - min);
          return Math.max(0,(value - min)*scale);
        }
      }
    },
    selectionWidth: 1,
    selfReferenceSize:20,
    shadow:{
      enabled: false,
      color: 'rgba(0,0,0,0.5)',
      size:10,
      x:5,
      y:5
    },
    smooth: {
      enabled: true,
      type: "dynamic",
      roundness: 0.5
    },
    title:undefined,
    value: undefined,
    width: 1,
    widthConstraint: false
  }
}

network.setOptions(options);

这些选项也可以设置为每个单独的边缘。

参数名类型默认值描述
arrowsObject or Stringundefined若要绘制具有默认设置的箭头,可以提供字符串。例如:arrows:'to, from,middle' 或者 'to;from',任何与任何分离符号的组合都很好。如果你想控制箭头的大小,你可以提供一个object。
arrows.toObject or BooleanObject当为true时,绘制“edge”箭头上的箭头,指向默认设置的“to”节点。要自定义箭头的大小,请提供一个object。
arrows.to.enabledBooleanfalse打开或关闭箭头。此选项是可选的,如果未定义并且设置了scaleFactor属性,将启用为true。
arrows.to.scaleFactorNumber1这个选项允许你改变箭头的大小。
arrows.to.typeStringarrow箭头端点的类型。可能的值是:arrow, bar, circle
arrows.middleObject or BooleanObject类似于“to”对象,但在边缘的中心有箭头。箭头的方向可以通过使用arrows.middle.scaleFactor 设置的负值翻转。
arrows.fromObject or BooleanObject与对象完全相同,但在边缘的节点上有箭头。
arrowStrikethroughBooleantrue当为false时,关系线会在箭头处断开,关系线与箭头之间存在一定的空隙 。如果你有粗线条,并且希望箭头在一点结束,这可能是有用的。中间箭头不受此影响。
chosenObject or Booleantrue当为true时,在节点上选择或悬停将根据默认情况改变它和标签的特性。当false时,选中某个节点后,该节点的关系线样式不会再被改变(一般是加粗或者颜色加深)。如果提供一个对象,当选择一个节点时,节点和标签特性的细粒度调整是可用的。
chosen.edgeFunction or Booleanundefined当为true时,在节点上选择或悬停将根据默认值改变其特性。当false时,当选择节点时,节点不会发生变化。如果提供一个函数,则在选择节点时调用它。function(values, id, selected, hovering) {values.property = chosenValue;}。任何传入的参数可用于确定特性变化。如果一个属性没有被提供的函数指定,它将保持不变。可以将特定功能分配给其选项中的每个特定边缘,或者分配给网络edges选项中的所有选项。
chosen.labelFunction or Booleanundefined当为true时,在边缘上选择或悬停将根据默认情况改变其标签的特性。当false时,当选择边缘时,边缘标签不会发生变化。如果提供一个函数,则在选择边缘时调用它。function(values, id, selected, hovering) {values.property =chosenValue; }。任何传入的参数可用于确定特性变化。如果一个属性没有被提供的函数指定,它将保持不变。可以将特定功能分配给其选项中的每个特定边缘,或者分配给网络edges选项中的所有选项。
colorObject or StringObject颜色对象包含在每种情况下的边缘的颜色信息。当边缘只需要一种颜色,一种颜色值比如:'rgb(120,32,14)','#ffffff' 或者'red',那么直接修改该属性来改变颜色。
color.colorString‘#848484’当未被选择或悬停时,边缘的颜色(假设在交互模块中启用了悬停)。
color.highlightString‘#848484’选择边缘时的颜色。
color.hoverString‘#848484’当鼠标悬停在其上时,边缘的颜色(假设在交互模块中启用了悬停)。
color.inheritString or Boolean‘from’如果color、highlight、hover有一个被设置,该属性就会被设置为false!支持选项是:true, false, 'from','to','both'。默认值是'from',它与true相同:边缘将继承来自'from'侧的节点边界的颜色。当设置为'to'时,将使用从'to'节点的边界颜色。当设置为'both'时,颜色将从颜色渐变为颜色。'both'都是计算密集型的,因为每次重绘都会重新计算梯度。这是必须的,因为当节点移动时角度发生变化。
color.opacityNumber1.0在不手动改变所有颜色的情况下设置边缘的不透明度可能是有用的。不透明度选项将转换所有颜色(也当使用继承时)以坚持提供的不透明度。不透明度选项的允许范围在0和1之间。这只做了一次,所以性能影响不太大。
dashesArray or Booleanfalse当为true时,边沿将绘制为虚线。可以通过提供数组来自定义破折号。数组格式: Array of numbers, gap length, dash length, gap length, dash length, … 等等。重复该阵列直到填充完为止。当在IE11以前的版本中使用虚线时,线条将被笔直绘制,而不是平滑。
fontObject or Stringfalse此对象定义标签的详细信息。形式上也支持速记。'size face color'例如:'14px arial red'
font.colorString‘#343434’标签文本的颜色。
font.sizeNumber14标签文本的大小。
font.faceString‘arial’标签文本的字体。
font.backgroundStringundefined字体背景。当不是undefined的而是一个颜色字符串时,将在提供颜色的标签后面画出一个背景矩形。
font.strokeWidthNumber2字体边线宽度。作为背景矩形的替代,可以在文本周围画出笔划。当提供高于0的值时,将画出笔划。
font.strokeColorString‘#ffffff’字体边线颜色。
font.alignString‘horizontal’字体位置。可能的选择:'horizontal','top','middle','bottom'。对齐方式决定标签在边缘上的对齐方式。默认值为horizontal和标签保持水平,不管边缘的方位如何。
font.vadjustString0针对垂直位置进行调整。(正是下降)。
font.multiBoolean or Stringfalse如果为false,则将标签视为用基本字体绘制的纯文本。如果TRUE或“HTML”,标签可以是多字体的,带有粗体、斜体和代码标记,解释为HTML。如果值是'markdown'或者'md'标签可以是多字体的,带有粗体、斜体和代码标记,被解释为markdown。粗体、斜体、粗体斜体和单字字体可以在font.bold, font.ital, font.boldital 和 font.mono属性下分别设置。
font.boldObject or Stringfalse这个对象定义标签中粗体字体的样式。形式上也支持'size face color'的形式,比如'14px arial red'
font.bold.colorString‘#343434’标签文本中粗体字体的颜色。默认为基本字体的颜色。
font.bold.sizeNumber14标签文本中粗体字体的大小。默认为基本字体的大小。
font.bold.faceString‘arial’标签文本中粗体字体的字体。默认为基本字体。
font.bold.modString‘bold’在标签文本中确定粗体字体时,添加到字体的字符串和大小。
font.bold.vadjustString0对标签文本中粗体字体的垂直定位的字体特定校正。(正值下降)默认为基本字体的垂直对齐。
font.italObject or Stringfalse这个对象定义标签中斜体字体的样式。形式上也支持'size face color'的形式,比如'14px arial red'
font.ital.colorString‘#343434’标签文本中斜体字体的颜色。默认为基本字体的颜色。
font.ital.sizeNumber14标签文本中斜体字体的大小。默认为基本字体的大小。
font.ital.faceString‘arial’标签文本中斜体字体的字体。默认为基本字体。
font.ital.modString‘bold’在标签文本中确定斜体字体时,添加到字体的字符串和大小。
font.ital.vadjustString0对标签文本中斜体字体的垂直定位的字体特定校正。(正值下降)默认为基本字体的垂直对齐。
font.bolditalObject or Stringfalse这个对象定义标签中粗体斜体字体的样式。形式上也支持'size face color'的形式,比如'14px arial red'
font.boldital.colorString‘#343434’标签文本中粗体斜体字体的颜色。默认为基本字体的颜色。
font.boldital.sizeNumber14标签文本中粗体斜体字体的大小。默认为基本字体的大小。
font.boldital.faceString‘arial’标签文本中粗体斜体字体的字体。默认为基本字体。
font.boldital.modString‘bold’在标签文本中确定粗体斜体字体时,添加到字体的字符串和大小。
font.boldital.vadjustString0对标签文本中粗体斜体字体的垂直定位的字体特定校正。(正值下降)默认为基本字体的垂直对齐。
font.monoObject or Stringfalse这个对象定义标签中等宽字字体的样式。形式上也支持'size face color'的形式,比如'14px arial red'
font.mono.colorString‘#343434’标签文本中等宽字字体的颜色。默认为基本字体的颜色。
font.mono.sizeNumber14标签文本中等宽字字体的大小。默认为基本字体的大小。
font.mono.faceString‘arial’标签文本中等宽字字体的字体。默认为基本字体。
font.mono.modString‘bold’在标签文本中确定等宽字字体时,添加到字体的字符串和大小。
font.mono.vadjustString0对标签文本中等宽字字体的垂直定位的字体特定校正。(正值下降)默认为基本字体的垂直对齐。
fromNumber or String边缘位于两个节点之间,一个到另一个。这是定义节点的位置。必须提供相应的节点ID。这自然只适用于个别边缘。
hiddenBooleanfalse当为true时,不绘制边缘。然而,它仍然是physics模拟的一部分。
hoverWidthNumber or Function0.5假定在interaction模块中启用悬停行为,hoverWidth决定当用户用鼠标悬停在其上时的边缘宽度。如果提供了一个数字,这个数字将被添加到宽度。因为宽度可以通过值和缩放函数来改变,所以常数乘法器或附加值可能不会给出最好的结果。为了解决这个问题,你可以提供一个函数。例子:var options: { edges: { hoverWidth: function (width) {return width+1;} }}它接收Number width。在这个简单示例中,我们向宽度添加1。只要函数返回一个Number,你就可以在函数中得到泰勒的逻辑。
idStringundefined边缘的ID。ID对于边沿是可选的。当未提供时,UUID将被分配给边缘。这自然只适用于个别边缘。
labelStringundefined边缘的标签。HTML在这里不起作用,因为网络使用HTML5画布。
labelHighlightBoldBooleantrue确定在选择边缘时标签是否变为粗体。
lengthNumberundefined物理模拟给出了边缘的弹簧长度。此值可以重写余下的弹簧长度。
physicsBooleantrue当为true时,边缘是物理模拟的一部分。当为false时,禁用一切物理行为。
scalingObjectObject如果指定了value选项,则根据该对象中的属性对边沿的宽度进行缩放。请记住,当使用缩放时,width选项被忽略。
scaling.minNumber1如果边有一个值,则它们的宽度由值、缩放函数和最小最大值决定。最小值是最小允许值。
scaling.maxNumber15这是使用值选项缩放边沿时允许的最大宽度。
scaling.labelObject or BooleanObject当FALSE时,标签不允许与边缘缩放。如果TRUE,它将使用默认的设置缩放。为了进一步定制,可以提供对象。
scaling.label.enabledBooleanfalse打开或关闭标签的缩放。如果未定义此选项,则如果定义了该对象中的任何属性,则将其设置为true。
scaling.label.minNumber14在缩放时用于标签的最小字体大小。
scaling.label.maxNumber30缩放时用于标签的最大字体大小。
scaling.label.maxVisibleNumber30当放大时,字体也绘制得更大。您可以使用此选项限制所感知的字体大小。如果设置为30,字体将永远不会看起来大于30缩放100%。
scaling.label.drawThresholdNumber5当变焦时,字体会看得出。这定义了一个较低的极限是在字体的绘制。当使用缩放字体,你可以使用这个在酒店maxvisible标签到第一显示重要的边缘,而只显示出当时的休息和变焦。
scaling.customScalingFunctionFunctionin description如果边具有value字段,则该函数根据节点的值确定节点的大小是如何缩放的。默认函数是:function (min,max,total,value) { if (max === min) { return 0.5; } else { var scale = 1 / (max - min); return Math.max(0,(value - min)*scale); }}函数接收集合的最小值,最大值,所有值的总和,最后它所工作的节点或边缘的值。它必须返回一个介于0和1之间的值。节点和边缘然后计算它们的大小如下:var scale = customScalingFunction(min,max,total,value);var diff = maxWidth - minWidth;myWidth = minWidth + diff * scale;请注意:maxWidthminWidth是在选项中提供的scaling.maxscaling.min的值。
selectionWidthNumber or Function1selectionWidth决定边缘在选择边缘时的宽度。如果提供了一个数字,这个数字将被添加到宽度。因为宽度可以通过与尺度函数的值改变,一个常数乘法器或附加价值可能不会得到最好的结果。为了解决这个问题,你可以提供一个函数。例子:var options: { edges: { selectionWidth: function (width) {return width*2;} }}它接收边缘的Number width。在这个简单的示例中,将宽度乘以2。只要函数返回Number,你就可以在函数中得到泰勒的逻辑。
selfReferenceSizeNumberfalse当来往节点相同时,画出一个圆。这就是那个圆的半径。
shadowObject or BooleanObject当为true时,边缘使用默认设置投射阴影。这可以通过提供对象来进一步细化。
shadow.enabledBooleanfalse切换阴影的投射。如果未定义此选项,则如果定义了该对象中的任何属性,则将其设置为true。
shadow.colorString‘rgba(0,0,0,0.5)’阴影颜色。支持格式为“rgb(255,255,255)”、“rgba(255,255,255,1)”和“#FFFFFF”。
shadow.sizeNumber10阴影的模糊大小。
shadow.xNumber5X轴偏移量。
shadow.yNumber5Y轴偏移量。
smoothObject or BooleanObject是否显示方向箭头。当为true时,边缘被绘制为动态二次Bezier曲线。这些曲线的绘制要比直线曲线长,但看起来更好。动态平滑曲线与静态平滑曲线存在差异。动态平滑曲线有一个不可见的支持节点参与物理模拟。如果你有很多边,你可能想考虑选择一种不同类型的平滑曲线,然后动态地获得更好的性能。
smooth.enabledBooleantrue打开和关闭平滑曲线。这是一个可选的选项。如果设置了该对象中的任何其他属性,则该选项将被设置为true。
smooth.typeString‘dynamic’可能的选择:'dynamic', 'continuous', 'discrete', 'diagonalCross', 'straightCross', 'horizontal', 'vertical', 'curvedCW', 'curvedCCW', 'cubicBezier'。看看这个例子,看看这些看起来像什么,挑一个你最喜欢的!当使用的要求是动态的,隐蔽的边缘引导和支持节点的形状。这个节点是一个物理模拟的一部分。
smooth.forceDirectionString or Booleanfalse接受选项:['horizontal', 'vertical', 'none']。此选项只与cubicBezier画布一起使用。当为真时,选择水平,当FALSE时,使用较大的方向(节点之间的X距离与节点之间的Y距离)。如果X距离较大,则水平。这是与分层布局一起使用的。
smooth.roundnessNumber0.5接受范围:0 .. 1.0。此参数调整除了动态之外的所有类型的平滑曲线的圆度。
titleStringundefined当鼠标移动到边缘时,标题显示在弹出窗口中。
toNumber or String边缘位于两个节点之间,一个到另一个。这是定义“to”节点的地方。你必须提供相应的节点ID。这自然只适用于个别的边。
valueNumberundefined当设置一个值时,将使用上面定义的缩放对象中的选项对边沿的宽度进行缩放。
widthNumber1边缘的宽度。如果设置了值,则不使用此值。
widthConstraintNumber, Boolean or Objectfalse如果为false,则不应用宽度限制。如果指定了一个数字,则将边缘标签的最大宽度设置为该值。边缘的标签线将打破空间,以保持低于最大值。
widthConstraint.maximumNumberundefined如果指定了一个数字,则将边缘标签的最大宽度设置为该值。边缘的标签线将打破空间,以保持低于最大值。

相关链接

1、程序员分类目录导航
2、visjs入门1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值