All Articles

Reactでグラフ(ノードとエッジ)を作成するためのvis.jsとreact-vis-network-graphの使い方ガイド

vis.jsに含まれるNetworkは、ノードとエッジから構成されるネットワークを表示するための可視化ツールです。この可視化ツールは使いやすく、カスタムの形状、スタイル、色、サイズ、画像などをサポートしています。数千のノードとエッジでも、ネットワークの可視化はどんなモダンなブラウザでもスムーズに動作します。さらに、より大量のノードを扱うために、ネットワークはクラスタリングのサポートも提供しています。ネットワークはHTMLのキャンバスを使用して描画されます。

今回は、このライブラリの使い方を整理していく。

vis.jsのリファレンス

optionsについて

ネットワークの表示は、optionsによって制御されます。 options内で適切にモジュール化されており、変更を加えたい設定がどこにあるかわかりやすいです。

モジュールについては後述します。

モジュール名 説明
configure フィルタリング機能を備えたインタラクティブなオプションエディタを生成します。
edges エッジの作成と削除を処理し、グローバルなエッジのオプションとスタイルを含んでいます。
groups グループと、存在しないグループを持つノードの扱いに関するいくつかのオプションを含んでいます。
interaction ネットワークとのすべてのユーザーインタラクションに使用されます。マウスやタッチイベント、選択、ナビゲーションボタン、ポップアップを処理します。
layout 初期配置および階層配置を管理します。
manipulation ネットワーク内のデータを変更するためのAPIとオプションのGUIを提供します。
nodes ノードの作成と削除を処理し、グローバルなノードのオプションとスタイルを含んでいます。
physics ノードとエッジを最終的な位置に移動させるシミュレーションを行い、安定化を制御します。
var options = {
  autoResize: true,
  height: '100%',
  width: '100%'
  locale: 'en',
  locales: locales,
  clickToUse: false,
  configure: {...},    // defined in the configure module.
  edges: {...},// defined in the edges module.
  nodes: {...},// defined in the nodes module.
  groups: {...}, // defined in the groups module.
  layout: {...}, // defined in the layout module.
  interaction: {...},  // defined in the interaction module.
  manipulation: {...}, // defined in the manipulation module.
  physics: {...},// defined in the physics module.
}

network.setOptions(options);
Name Type Default Description
autoResize Boolean true ネットワークのコンテナのリサイズを自動的に検出し、それに応じて再描画する場合はtrue。falseの場合、コンテナのリサイズ後に再描画するためにredraw()やsetSize()関数を使用することができる。
width String '100%' キャンバスの幅。パーセンテージまたはピクセル単位で指定可能(例:'400px')。
height String '100%' キャンバスの高さ。パーセンテージまたはピクセル単位で指定可能(例:'400px')。
locale String 'en' ロケールの選択。デフォルトでは英語が使用される。
locales Object defaultLocales ロケールオブジェクト。デフォルトでは'en'、'de'、'es'、'it'、'nl'、'pt-br'、'ru'がサポートされています。カスタマイズ方法の詳細については、下記のロケールセクションをご覧ください。
clickToUse Boolean false ネットワークがclickToUseに設定されている場合、アクティブ時にのみマウスやタッチイベントに反応します。アクティブ時には、ネットワークの周りに青い影のボーダーが表示されます。ネットワークをアクティブにするにはクリックし、非アクティブにするにはネットワークの外をクリックするか、ESCキーを押します。

Global メソッドについて

メソッド名 説明
remove ネットワークをDOMから削除し、すべてのHammerバインディングと参照を削除します。
setData ネットワークのデータを上書きします。physicsモジュールで安定化が有効になっている場合、ネットワークは再度安定化されます。ネットワークを初期化するときにも実行されます。
setOptions オプションを設定します。使用可能なオプションは上記のモジュールで確認できます。各モジュールには、自身のオプションを含むモジュール名のコンテナが必要です。
on イベントリスナーを設定します。イベントの種類によって、コールバック関数に異なるパラメータが提供されます。詳細については、ドキュメントのイベントセクションを参照してください。
off イベントリスナーを削除します。提供する関数は、on関数で使用した関数と完全に同じである必要があります。関数が指定されていない場合、すべてのリスナーが削除されます。詳細については、ドキュメントのイベントセクションを参照してください。
once イベントリスナーを一度だけ設定します。実行されると、イベントリスナーは削除されます。イベントの種類によって、コールバック関数に異なるパラメータが提供されます。詳細については、ドキュメントのイベントセクションを参照してください。

Canvasに関連するメソッドについて

メソッド名 説明
canvasToDOM キャンバス座標をDOM上の座標に変換します。入力と出力は {x:Number, y:Number} の形式です。DOMの値はネットワークコンテナに対して相対的です。
DOMtoCanvas DOM上の座標をキャンバス座標に変換します。入力と出力は {x:Number, y:Number} の形式です。DOMの値はネットワークコンテナに対して相対的です。
redraw ネットワークを再描画します。
setSize キャンバスのサイズを設定します。これは自動的にウィンドウのリサイズ時に行われます。

クラスタリングに関連するメソッドについて

メソッド名 説明
cluster クラスタリングのためのオプションオブジェクトが説明されています。joinCondition関数にはすべてのノードが渡されます。
clusterByConnection 指定されたノードとその接続されたノードのクラスタを作成します。動作はオプションオブジェクトでカスタマイズできます。このオブジェクトのすべてのオプションは以下で説明されています。joinConditionは接続されたノードのみが渡されます。
clusterByHubsize ネットワーク内のすべてのノードをチェックし、指定されたハブサイズ以上のエッジを持つノードが対象となります。ハブサイズが定義されていない場合、ハブサイズは平均値に2つの標準偏差を加えた値として決定されます。

対象となるすべてのノードに対して、clusterByConnectionがそれぞれ実行されます。オプションオブジェクトはclusterByConnectionのために説明され、ここでも同様の動作をします。 | clusterOutliers | 1つのエッジを持つすべてのノードを、それぞれの接続されたノードとクラスタ化します。オプションオブジェクトは完全に説明されています。 | | getNodesInCluster | ノードがどのクラスタに含まれるかを示すnodeIdsの配列を返します。チェーン内の任意のnodeId(特に最初のパラメータとして渡されたもの)が現在のノードリストに存在しない場合、空の配列が返されます。 | | getEdgesInCluster | 提供されたエッジから作成されたすべてのエッジIDを返します。このメソッドは非推奨です。代わりにgetBaseEdges()を使用してください。 | | getBaseEdge | クラスタ化されたエッジIDが利用可能な場合、このメソッドはデータ.edgesで提供された元のbaseEdgeIdを返します。 | | getBaseEdges | クラスタ化されたエッジIDに対して、データ.edgesで提供されたすべての元のbase edge idを返します。非クラスタ化(つまり「base」)エッジの場合、clusteredEdgeIdが返されます。 | | updateEdge | クラスタ化されたノード間の可視エッジは、データ.edgesで提供されたものとは異なるエッジです。このメソッドはエッジID(データ.edgesからの元のbase edgeId)を受け取り、それにオプションを適用し、クラス | updateClusteredNode | クラスタノードを更新します。 | | isCluster | 指定したIDのノードがクラスタである場合、trueを返します。 | | getNodesInCluster | クラスタが開かれた場合に解放されるすべてのノードのnodeIdの配列を返します。 | | openCluster | クラスタを開き、含まれるノードとエッジを解放し、クラスタノードとクラスタエッジを削除します。オプションオブジェクトはオプションであり、現在はreleaseFunctionという1つのオプションをサポートしています。releaseFunctionは、クラスタが開かれた後にノードを手動で配置するために使用できる関数です。 | | focus | 指定したノードにフォーカスを当てます。オプションを指定して動作をカスタマイズできます。 | | moveTo | カメラをアニメーションや移動に使用します。オプションを指定して動作をカスタマイズできます。 |

Layoutに関連するメソッドについて

メソッド名 説明
getSeed ネットワークの現在のレイアウトのシード値を取得します。

GUIを使わない操作に関連するメソッドについて

メソッド名 説明
enableEditMode 編集モードを有効にします。
disableEditMode 編集モードを無効にします。
addNodeMode ノードの追加モードに移行します。
editNode 選択したノードを編集します。
addEdgeMode エッジの追加モードに移行します。
editEdgeMode エッジの編集モードに移行します。
deleteSelected 選択されたオブジェクトを削除します。

ノードとエッジの情報取得に関連するメソッドについて

メソッド名 説明
getPositions ノードの位置情報を取得します。
getPosition 特定のノードの位置情報を取得します。
storePositions ノードの位置情報をDataSetに保存します。
moveNode ノードを移動します。
getBoundingBox ノードの境界ボックスを取得します。
getConnectedNodes 特定のノードに直接接続しているすべてのノードのnodeIdの配列を取得します。
getConnectedEdges 特定のノードに接続しているエッジのedgeIdの配列を取得します。

物理シミュレーションに関連するメソッドについて

メソッド名 説明
startSimulation 物理シミュレーションを開始します。
stopSimulation 物理シミュレーションを停止します。
stabilize 手動で安定化を実行します。

ノードとエッジを選択に関連するメソッドについて

メソッド名 説明
getSelectedNodes 選択されたノードのnodeIdの配列を取得します。
getSelectedEdges 選択されたエッジのedgeIdの配列を取得します。
getPointer 指定した座標に存在するノードのnodeIdを返します。
getEdgeAt 指定した座標に存在するエッジのedgeIdを返します。
selectNodes 指定したノードの選択状態を設定します。
selectEdges 指定したエッジの選択状態を設定します。
setSelection 選択状態を設定します。
unselectAll すべてのオブジェクトの選択を解除します。

ビューポートの制御(ズーム・アニメーション)に関連するメソッドについて

メソッド名 説明
getScale 現在のズームレベルを取得します。
getCentralFocus 現在のビューの中心点を取得します。
fit すべてのノードがキャンバスに収まるようにズームします。オプションを指定して動作をカスタマイズできます。
focusOnNode 指定したノードにフォーカスを当てます。オプションを指定して動作をカスタマイズできます。
moveTo カメラをアニメーションや移動に使用します。オプションを指定して動作をカスタマイズできます。

設定取得に関連するメソッドについて

メソッド名 説明
getOptionsFromConfigurator 設定モジュールを使用する場合、ユーザーの操作によって生じたデフォルトオプションからのすべての違いを含むオプションオブジェクトを取得できます。

クラスターオプション操作に関連するメソッド

メソッド名 説明
joinCondition クラスタ関数に渡されるノードのデータを基に、ノードをクラスタに追加するかどうかを判定する関数です。
processProperties 新しいクラスタノードを作成する前に、指定したプロパティ、すべての含まれるノード、および含まれるエッジとともに呼び出されるオプションの関数です。これを使用して、クラスタが含むアイテムに基づいてクラスタのプロパティを更新することができます。関数はクラスタノードの作成に使用するプロパティを返さなければなりません。
clusterNodeProperties クラスタノードのオプションを含むオブジェクトです。ノードモジュールで説明されているすべてのオプションが許可されます。これにより、クラスタノードのスタイルを自由に設定することができます。デフォルトのノードオプションが使用されます。未定義の場合は、デフォルトのノードオプションが使用されます。
clusterEdgeProperties クラスタに接続されたエッジのオプションを含むオブジェクトです。エッジモジュールで説明されているすべてのオプションが許可されます。これにより、クラスタに接続されたエッジのスタイルを自由に設定することができます。提供されていない場合、置き換えられたエッジのオプションが使用されます。未定義の場合は、デフォルトのエッジオプションが使用されます。

イベントに関連するメソッド

イベント名 プロパティ 説明
click nodes, edges, event, pointer ユーザーがマウスをクリックまたはタッチしたときに発生するイベントです。オブジェクトとして、選択されたノードとエッジのID、クリックイベント、ポインタの座標が渡されます。
doubleClick 同じ as click ユーザーがマウスをダブルクリックまたはタッチしたときに発生するイベントです。ダブルクリックは実際には2回のクリックであり、2回のクリックイベントの後にダブルクリックイベントが発生します。
oncontext 同じ as click ユーザーがキャンバスを右クリックしたときに発生するイベントです。右クリックはデフォルトでは選択しませんが、getNodeAtメソッドを使用してノードを選択することができます。
hold 同じ as click ユーザーがマウスをクリック&ホールドまたはタップ&ホールドしたときに発生するイベントです。この場合もクリックイベントが発生します。
release 同じ as click 描画が完了した後に発生するイベントです。ネットワークの上に描画するために使用することができます。
select 同じ as click ユーザーの操作によって選択が変更されたときに発生するイベントです。ノードやエッジが選択されたり、選択に追加されたり、選択が解除されたりします。
selectNode 同じ as click ユーザーがノードを選択したときに発生するイ
selectEdge 同じ as click ユーザーがエッジを選択したときに発生するイベントです。
deselectNode nodes, edges, event, pointer, previousSelection ユーザーがノード(または複数のノード)の選択を解除したときに発生するイベントです。前の選択状態として、直前のユーザーイベントの時点で選択されていたノードとエッジのリストが渡されます。
deselectEdge 同じ as deselectNode ユーザーがエッジ(または複数のエッジ)の選択を解除したときに発生するイベントです。前の選択状態として、直前のユーザーイベントの時点で選択されていたノードとエッジのリストが渡されます。
dragStart 同じ as click ドラッグを開始したときに発生するイベントです。
dragging 同じ as click ノードやビューをドラッグしているときに発生するイベントです。
dragEnd 同じ as click ドラッグが終了したときに発生するイベントです。
controlNodeDragging nodes, edges, event, pointer, controlEdge コントロールノードをドラッグしているときに発生するイベントです。コントロールエッジはドラッグされており、「from」と「to」のノードのIDを含んでいます。コントロールノードが他のノード上でドラッグされていない場合、「to」フィールドは未定義です。
controlNodeDragEnd 同じ as controlNodeDragging コントロールノードのドラッグが終了したときに発生するイベントです。
hoverNode {node: nodeId} オプションのinteraction:{hover:true}が有効であり、マウスがノード上にある場合に発生するイベントです。
blurNode {node: nodeId} オプションのinteraction:{hover:true}が有効であり、マウスが前にホバーしていたノードから離れた場合に発生するイベントです。
hoverEdge {edge: edgeId} オプションのinteraction:{hover:true}が有効であり、マウスがエッジ上にある場合に発生するイベントです。
blurEdge {edge: edgeId} オプションのinteraction:{hover:true}が有効であり、マウスが前にホバーしていたエッジから離れた場合に発生するイベントです。
zoom direction, scale, pointer ユーザーがズームインまたはズームアウトしたときに発生するイベントです。プロパティにはズームの方向、スケール、およびポインタの情報が含まれます。
showPopup ポップアップに対応するアイテムのID ポップアップ(ツールチップ)が表示されたときに発生するイベントです。
hidePopup なし ポップアップ(ツールチップ)が非表示になったときに発生するイベントです。
startStabilizing なし スタビライズが開始されたときに発生するイベントです。ドラッグ操作などで物理シミュレーションが再開される場合も含まれます。
stabilizationProgress iterations, total 定期的な更新間隔の数倍のイテレーションが実行されたときに発生するイベントです。これは「hidden」スタビライズ時にのみ発生します。
stabilizationIterationsDone なし 「hidden」スタビライズが終了したときに発生するイベントです。ネットワークの安定化を意味するわけではなく、オプションで定義されたイテレーション数に到達したことを示す場合もあります。
stabilized iterations ネットワークが安定化したとき、またはstopSimulation()が呼び出されたときに発生するイベントです。イテレーションの数は、ネットワークの安定化に必要な最大イテレーション数を調整するために使用できます。
resize width, height, oldWidth, oldHeight キャンバスのサイズが再設定されたときに発生するイベントです。新しい幅と高さ、および以前の幅と高さの情報が渡されます。
initRedraw なし 再描画が開始される前に発生するイベントです。シミュレーションステップが完了しています。
beforeDrawing canvas context キャンバスがクリアされ、表示位置にスケーリングおよび変換された後、すべてのエッジとノードが描画される前に発生するイベントです。
afterDrawing canvas context キャンバス上の描画が完了した後に発生するイベントです。ネットワークの
animationFinished なし アニメーションが終了したときに発生するイベントです。
configChange options ユーザーが設定変更を行ったときに発生するイベントです。オプションオブジェクトはsetOptionsメソッドで使用するか、JSON.stringify()を使用して文字列化することができます。オプションは手動でネットワークに追加する必要はありません。自動的に行われます。このイベントを使用してユーザーのオプションをデータベースに保存することができます。

configureについて

// these are all options in full.
var options = {
  configure: {
    enabled: true,
    filter: 'nodes,edges',
    container: undefined,
    showButton: true
  }
}

network.setOptions(options);
名前 タイプ デフォルト値 説明
enabled ブール値 true 設定インターフェースをオンまたはオフに切り替えます。これはオプションのパラメータです。未定義のままで、このオブジェクトの他のプロパティのいずれかが定義されている場合、これはtrueに設定されます。
filter 文字列、配列、ブール値、関数 true ブール値の場合、trueはすべてのオプションを表示し、falseは表示しません。文字列が指定された場合、以下の組み合わせが許可されます:nodes、edges、layout、interaction、manipulation、physics、selection、renderer。 関数を提供する場合、2つの引数を受け取ります。オプションとオプションがoptionsオブジェクト内のパスです。関数がtrueを返すと、オプションが構成可能なものとして表示されます。
container DOM要素 未定義 設定リストをネットワークの下ではなく、別のHTMLコンテナに配置することができます。
showButton ブール値 true 設定インターフェースの下部にオプションの生成ボタンを表示します。

edgesについて

// these are all options in full.
var options = {
  edges:{
    arrows: {
      to: {
        enabled: false,
        imageHeight: undefined,
        imageWidth: undefined,
        scaleFactor: 1,
        src: undefined,
        type: "arrow"
      },
      middle: {
        enabled: false,
        imageHeight: 32,
        imageWidth: 32,
        scaleFactor: 1,
        src: "https://visjs.org/images/visjs_logo.png",
        type: "image"
      },
      from: {
        enabled: false,
        imageHeight: undefined,
        imageWidth: undefined,
        scaleFactor: 1,
        src: undefined,
        type: "arrow"
      }
    },
    endPointOffset: {
      from: 0,
      to: 0
    },
    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,
    selfReference:{
      size: 20,
      angle: Math.PI / 4,
      renderBehindTheNode: true
    },
    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);
名前 タイプ デフォルト値 説明
arrows.to オブジェクトまたはブール値 オブジェクト true の場合、エッジの「to」側に矢印が描かれ、デフォルト設定で「to」ノードを指します。矢印のサイズをカスタマイズするには、オブジェクトを指定します。
arrows.to.enabled ブール値 false 矢印をオンまたはオフに切り替えます。このオプションは任意です。未定義の場合、scaleFactor プロパティが設定されている場合、enabled は true に設定されます。
arrows.to.imageHeight 数値 未定義 画像矢印の高さです。定義されていない場合、画像ファイルの高さが使用されます。
arrows.to.imageWidth 数値 未定義 画像矢印の幅です。定義されていない場合、画像ファイルの幅が使用されます。
arrows.to.scaleFactor 数値 1 スケールファクターは、矢印のサイズを変更するためのものです。
arrows.to.src 文字列 未定義 画像矢印の URL です。
arrows.to.type 文字列 arrow 端点のタイプです。可能な値は、arrow、bar、circle、image です。デフォルトは arrow です。
arrows.middle オブジェクトまたはブール値 オブジェクト 'to' オブジェクトと似ていますが、エッジの中央に矢印があります。矢印の方向は、arrows.middle.scaleFactor の負の値を使用して反転させることができます。
arrows.from オブジェクトまたはブール値 オブジェクト 'to' オブジェクトとまったく同じですが、エッジの from ノードに矢印があります。
endPointOffset.from 数値 0 負の数値は、エンドポイントをノードの中点に近づけ、正の数値は逆の効果があります。
endPointOffset.to 数値 0 負の数値は、エンドポイントをノードの中点に近づけ、正の数値は逆の効果があります。
arrowStrikethrough ブール値 true false の場合、矢印でエッジが終わります。これは、太い線を使用して矢印をポイントで終了させたい場合に便利です。ただし、中央の矢印はこれに影響を受けません。
chosen.edge 関数またはブール値 未定義 true の場合、エッジを選択したりホバーしたりすると、デフォルトに基づいて特性が変更されます。false の場合、エッジが選択されたときにエッジに変更は加えられません。関数が指定されている場合、エッジが選択されたときに呼び出されます。
chosen.label 関数またはブール値 未定義 true の場合、エッジを選択したりホバーしたりすると、ラベルの特性がデフォルトに基づいて変更されます。false の場合、エッジのラベルが選択されたときに変更されません。関数が指定されている場合、エッジが選択されたときに呼び出されます。
color.color 文字列 '#848484' 選択されたりホバーされないときのエッジの色(インタラクションモジュールでホバーが有効になっている場合)
color.highlight 文字列 '#848484' エッジが選択されたときの色です。
color.hover 文字列 '#848484' マウスがエッジにホバーしたときの色です(インタラクションモジュールでホバーが有効になっている場合)
color.inherit 文字列またはブール値 'from' color、highlight、または hover が定義されている場合、inherit は false に設定されます! サポートされているオプションは: true、false、'from'、'to'、'both' です。 デフォルト値は 'from' で、true と同じです: エッジは 'from' 側のノードの境界線から色を継承します。
color.opacity 数値 1.0 手動ですべての色を変更せずにエッジの不透明度を設定するのに便利です。不透明度オプションは、すべての色(inherit を使用している場合も)を指定された不透明度に従って調整します。不透明度オプションの許容範囲は0から1です。これは一度だけ行われるため、パフォーマンスへの影響は大きくありません。
dashes 配列またはブール値 false true の場合、エッジは破線として描画されます。配列を指定して破線をカスタマイズすることもできます。配列の形式は次のとおりです。配列は数値、ギャップの長さ、ダッシュの長さ、ギャップの長さ、ダッシュの長さ... などです。配列は距離が埋まるまで繰り返されます。ただし、IE のバージョン11より古いバージョンでは、破線は直線で描画されます。
font.color 文字列 '#343434' ラベルテキストの色です。
font.size 数値 14 ラベルテキストのサイズです。
font.face 文字列 'arial' ラベルテキストのフォントフェイス(またはフォントファミリー)です。
font.background 文字列 未定義 定義されている場合、背景に指定された色の矩形がラベルの後ろに描画されます。
font.strokeWidth 数値 2 テキストの周りにストロークを描画する場合の代替オプションです。値が0より大きい場合、ストロークが描画されます。
font.strokeColor 文字列 '#ffffff' ストロークの色です。ストロークの値が0より大きい場合に適用されます。
font.align 文字列 'horizontal' 可能なオプション: 'horizontal'、'top'、'middle'、'bottom'。アラインメントは、ラベルがエッジに対してどのように配置されるかを決定します。デフォルト値の horizontal では、エッジの方向に関係なくラベルが水平に配置されます。horizontal 以外のオプションが選択されると、ラベルはエッジに応じて自動的に配置されます。
font.vadjust 数値 0 ラベルテキストのベースフォントの垂直位置のフォント固有の補正です。(正の値は下方向)
font.multi ブール値または文字列 false false の場合、ラベルはベースフォントで描かれる純粋なテキストとして扱われます。true または 'html' の場合、ラベルはマルチフォントであり、太字、斜体、コードのマークアップが解釈された HTML として処理されます。値が
font.multi ブール値または文字列 false ラベルがベースフォントで描画される場合はfalseです。trueまたは 'html' の場合、ラベルはボールド、イタリック、コードのマークアップが可能で、HTMLとして解釈されます。値が 'markdown' または 'md' の場合、ラベルはボールド、イタリック、コードのマークアップが可能で、マークダウンとして解釈されます。ボールド、イタリック、ボールドイタリック、モノスペースのフォントは、それぞれfont.bold、font.ital、font.boldital、font.monoのプロパティで設定することができます。
font.bold.color 文字列 '#343434' ラベルテキストの太字フォントの色です。ベースフォントの色をデフォルト値として使用します。
font.bold.size 数値 14 ラベルテキストの太字フォントのサイズです。ベースフォントのサイズをデフォルト値として使用します。
font.bold.face 文字列 'arial' ラベルテキストの太字フォントのフォントフェイス(またはフォントファミリ)です。ベースフォントのフォントフェイスをデフォルト値として使用します。
font.bold.mod 文字列 'bold' ラベルテキストの太字フォントを決定する際にフォントフェイスとサイズに追加される文字列です。
font.bold.vadjust 数値 0 ラベルテキストの太字フォントの垂直位置調整です。(正の値は下方向です。)ベースフォントのvalignをデフォルト値として使用します。
font.ital.color 文字列 '#343434' ラベルテキストのイタリックフォントの色です。ベースフォントの色をデフォルト値として使用します。
font.ital.size 数値 14 ラベルテキストのイタリックフォントのサイズです。ベースフォントのサイズをデフォルト値として使用します。
font.ital.face 文字列 'arial' ラベルテキストのイタリックフォントのフォントフェイス(またはフォントファミリ)です。ベースフォントのフォントフェイスをデフォルト値として使用します。
font.ital.mod 文字列 'italic' ラベルテキストのイタリックフォントを決定する際にフォントフェイスとサイズに追加される文字列です。
font.ital.vadjust 数値 0 ラベルテキストのイタリックフォントの垂直位置調整です。(正の値は下方向です。)ベースフォントのvalignをデフォルト値として使用します。
font.boldital.color 文字列 '#343434' ラベルテキストの太字イタリックフォントの色です。ベースフォントの色をデフォルト値として使用します。
font.boldital.size 数値 14 ラベルテキストの太字イタリックフォントのサイズです。ベースフォントのサイズをデフォルト値として使用します。
font.boldital.face 文字列 'arial' ラベルテキストの太字イタリックフォントのフォントフェイス(またはフォントファミリ)です。ベースフォントのフォントフェイスをデフォルト値として使用します。
font.boldital.mod 文字列 'bold' ラベルテキストの太字イタリックフォントを決定する際にフォントフェイスとサイズに追加される文字列です。
font.boldital.vadjust 数値 0 ラベルテキストの太字イタリックフォントの垂直位置調整です。(正の値は下方向です。)ベースフォントのvalignをデフォルト値として使用します。
font.mono.color 文字列 '#343434' ラベルテキストのモノスペースフォントの色です。ベースフォントの色をデフォルト値として使用します。
font.mono.size 数値 15 ラベルテキストのモノスペースフォントのサイズです。ベースフォントのサイズをデフォルト値として使用します。
font.mono.face 文字列 'courier new' ラベルテキストのモ
font.mono.mod 文字列 '' ラベルテキストのモノスペースフォントを決定する際にフォントフェイスとサイズに追加される文字列です。
font.mono.vadjust 数値 2 ラベルテキストのモノスペースフォントの垂直位置調整です。(正の値は下方向です。)ベースフォントのvalignをデフォルト値として使用します。
from 数値または文字列 エッジは2つのノード間で接続されており、1つはfromノードを定義します。対応するノードIDを指定する必要があります。これは個々のエッジにのみ適用されます。
hidden ブール値 false trueの場合、エッジは描画されませんが、物理シミュレーションの一部となります。
hoverWidth 数値または関数 0.5 インタラクションモジュールでホバー動作が有効になっている場合、ユーザーがマウスでエッジにホバーする際のエッジの幅を決定します。数値が指定された場合、この数値が幅に追加されます。幅は値とスケーリング関数によって変更されるため、定数の乗算子や追加値は最適な結果を得られない場合があります。そのため、関数を指定することができます。例: この関数はエッジの幅の数値を受け取ります。この単純な例では、幅に1を追加しています。関数内のロジックは任意の形にカスタマイズできますが、数値を返す必要があります。
id 文字列 undefined エッジのIDです。エッジにはオプションです。指定されていない場合、エッジにはUUIDが割り当てられます。これは個々のエッジにのみ適用されます。
label 文字列 undefined エッジのラベルです。HTMLは使用できません。ネットワークはHTML5キャンバスを使用します。
labelHighlightBold ブール値 true エッジが選択されたときにラベルが太字になるかどうかを決定します。
length 数値 undefined 物理シミュレーションによってエッジにスプリングの長さが与えられます。この値はスプリングの長さを上書きすることができます。
physics ブール値 true trueの場合、エッジは物理シミュレーションの一部となります。falseの場合、スプリングとしては機能しません。
scaling.min 数値 1 エッジに値がある場合、その幅は値、スケーリング関数、最小値と最大値によって決まります。最小値は許容される最小値です。
scaling.max 数値 15 オプションでvalueを使用してエッジの幅をスケーリングする場合の最大許容幅です。
scaling.label オブジェクトまたはブール値 オブジェクト falseの場合、ラベルはエッジと共にスケーリングされません。trueの場合、デフォルト設定を使用してスケーリングされます。さらなるカスタマイズのために、オブジェクトを指定することもできます。
scaling.label.enabled ブール値 false ラベルのスケーリングをオンまたはオフに切り替えます。このオプションが定義されていない場合、このオブジェクトのプロパティのいずれかが定義されている場合はtrueに設定されます。
scaling.label.min 数値 14 スケーリング時に使用されるラベルの最小フォントサイズです。
scaling.label.max 数値 30 スケーリング時に使用されるラベルの最大フォントサイズです。
scaling.label.maxVisible 数値 30 ズームインするとフォントも大きく描画されます。このオプションを使用して認識されるフォントサイズを制限できます。30に設定すると、フォントは100%のズームでサイズ30より大きく表示されません。
scaling.label.drawThreshold 数値 5 ズームアウトすると、フォントサイズが小さく描画されます。フォントが描画される下限を定義します。フォントスケーリングを使用する場合、maxVisibleと組み合わせて、ズームアウト時に重要なエッジのラベルのみを表示し、ズームイン時に残りのラベルの表示を行うことができます。
scaling.customScalingFunction 関数 詳細に記載あり エッジに値フィールドがある場合、この関数はノードのサイズを値に基づいてスケーリングする方法を決定します。
selectionWidth 数値または関数 1 エッジが選択されたときのエッジの幅を決定します。数値が指定された場合、この数値が幅に追加されます。幅は値とスケーリング関数によって変更されるため、定数の乗算子や追加値は最適な結果を得られない場合があります。そのため、関数を指定することができます。
selfReferenceSize 数値 false toノードとfromノードが同じ場合、円が描画されます。これはその円の半径です。このプロパティは非推奨であり、代わりにselfReferenceを使用してください。
selfReference.size 数値 20 円の半径です。
selfReference.angle 数値 π / 4 位置を示す角度(ラジアンで指定)です。位置が指定されていない場合、右上の角(π / 4)になります。
selfReference.renderBehindTheNode ブール値 true セルフリファレンス円を完全な円として描画するか、親ノードと重ならないようにするかを示すフラグです。
shadow.enabled ブール値 false 影のキャスティングを切り替えます。このオプションが定義されていない場合、このオブジェクトのいずれかのプロパティが定義されている場合はtrueに設定されます。
shadow.color 文字列 'rgba(0,0,0,0.5)' 影の色を示す文字列です。サポートされる形式は 'rgb(255,255,255)'、'rgba(255,255,255,1)'、'#FFFFFF' です。
shadow.size 数値 10 影のぼかしサイズです。
shadow.x 数値 5 Xオフセットです。
shadow.y 数値 5 Yオフセットです。
smooth.enabled ブール値 true スムーズなカーブをオンまたはオフに切り替えます。これはオプションのオプションです。このオブジェクトの他のプロパティのいずれかが設定されている場合、このオプションはtrueに設定されます。
smooth.type 文字列 'dynamic' 可能なオプション:'dynamic'、'continuous'、'discrete'、'diagonalCross'、'straightCross'、'horizontal'、'vertical'、'curvedCW'、'curvedCCW'、'cubicBezier'。これらのどれが最適かを確認するために、この例を参照してください! dynamicを使用する場合、エッジには形状をガイドする見えないサポートノードがあります。このノードは物理シミュレーションの一部です。
smooth.forceDirection 文字列またはブール値 false 受け入れられるオプション:['horizontal', 'vertical', 'none']。このオプションは、cubicBezier曲線と一緒にのみ使用されます。trueの場合、horizontalが選択され、falseの場合は、より大きい方向(ノード間のx距離とy距離)が使用されます。x距離が大きい場合は水平方向を使用します。これは階層レイアウトで使用することを想定しています。
smooth.roundness 数値 0.5 受け入れられる範囲:0..1.0。このパラメータは、dynamic以外のすべてのタイプのスムーズなカーブの丸みを調整します。
title 文字列または要素 undefined エッジ上にホバーするとポップアップで表示されるタイトルです。タイトルはHTML要素またはプレーンテキストを含む文字列であることができます。HTMLを解析したい場合は、HTML in titles exampleを参照してください。
to 数値または文字列 エッジは2つのノード間で接続されます。これはtoノードを定義する場所です。対応するノードIDを指定する必要があります。これは個々のエッジにのみ適用されます。
value 数値 undefined 値が設定されている場合、エッジの幅は、scalingオブジェクトで定義されたオプションを使用してスケーリングされます。
width 数値 1 エッジの幅です。valueが設定されている場合、これは使用されません。
widthConstraint.maximum 数値 undefined 数値が指定された場合、エッジのラベルの最大幅がその値に設定されます。エッジのラベルの行はスペースで区切られ、最大値を下回るように分割されます。

nodesについて

var options = {
  nodes:{
    borderWidth: 1,
    borderWidthSelected: 2,
    brokenImage:undefined,
    chosen: true,
    color: {
      border: '#2B7CE9',
      background: '#97C2FC',
      highlight: {
        border: '#2B7CE9',
        background: '#D2E5FF'
      },
      hover: {
        border: '#2B7CE9',
        background: '#D2E5FF'
      }
    },
    opacity: 1,
    fixed: {
      x:false,
      y:false
    },
    font: {
      color: '#343434',
      size: 14, // px
      face: 'arial',
      background: 'none',
      strokeWidth: 0, // px
      strokeColor: '#ffffff',
      align: 'center',
      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: ''
      }
    },
    group: undefined,
    heightConstraint: false,
    hidden: false,
    icon: {
      face: 'FontAwesome',
      code: undefined,
      weight: undefined,
      size: 50,  //50,
      color:'#2B7CE9'
    },
    image: undefined,
    imagePadding: {
      left: 0,
      top: 0,
      bottom: 0,
      right: 0
    },
    label: undefined,
    labelHighlightBold: true,
    level: undefined,
    mass: 1,
    physics: true,
    scaling: {
      min: 10,
      max: 30,
      label: {
        enabled: false,
        min: 14,
        max: 30,
        maxVisible: 30,
        drawThreshold: 5
      },
      customScalingFunction: function (min,max,total,value) {
        if (max === min) {
          return 0.5;
        }
        else {
          let scale = 1 / (max - min);
          return Math.max(0,(value - min)*scale);
        }
      }
    },
    shadow:{
      enabled: false,
      color: 'rgba(0,0,0,0.5)',
      size:10,
      x:5,
      y:5
    },
    shape: 'ellipse',
    shapeProperties: {
      borderDashes: false, // only for borders
      borderRadius: 6,     // only for box shape
      interpolation: false,  // only for image and circularImage shapes
      useImageSize: false,  // only for image and circularImage shapes
      useBorderWithImage: false,  // only for image shape
      coordinateOrigin: 'center'  // only for image and circularImage shapes
    }
    size: 25,
    title: undefined,
    value: undefined,
    widthConstraint: false,
    x: undefined,
    y: undefined
  }
}

network.setOptions(options);

以下が要素のテーブル化と日本語化です。

プロパティ タイプ デフォルト値 説明
borderWidth 数値 1 ノードの境界の幅です。
borderWidthSelected 数値 2 ノードが選択された場合の境界の幅です。未定義の場合、borderWidth * 2が使用されます。
brokenImage 文字列 未定義 shapeが'image'または'circularImage'に設定されている場合、このオプションはimageオプションで指定されたURLが解決できない場合のバックアップ画像のURLです。
chosen.node 関数またはブール値 未定義 trueの場合、ノードが選択またはホバーされたとき、デフォルトに基づいてその特性が変更されます。falseの場合、ノードが選択された場合にノードに変更は加えられません。関数が指定された場合、ノードが選択されたときに呼び出されます。関数の引数として、values(値のオブジェクト)、id(ノードのID)、selected(選択されたかどうかの状態)、hovering(ホバーしているかどうかの状態)が与えられます。関数内では、任意の引数を使用して特性の変更を決定できます。特定のノードに特定の関数を割り当てることもできますし、ネットワークのノードオプション全体に関数を割り当てることもできます。特性は次のように変更されます:プロパティ-ノードリファレンス。
color.border 文字列 '#2B7CE9' ノードが選択されていない場合やホバーされていない場合の境界の色です(interactionモジュールでホバーが有効になっている場合)。
color.background 文字列 '#D2E5FF' ノードが選択されていない場合やホバーされていない場合の背景の色です(interactionモジュールでホバーが有効になっている場合)。
color.highlight オブジェクトまたは文字列 オブジェクト ノードが選択された場合の色です。または、単純な文字列のカラー値を指定することもできます。
color.highlight.border 文字列 '#2B7CE9' ノードが選択された場合の境界の色です。
color.highlight.background 文字列 '#D2E5FF' ノードが選択された場合の背景の色です。
color.hover オブジェクトまたは文字列 オブジェクト マウスがノード上にホバーしたときのノードの色です(interactionモジュールでホバーが有効になっている場合)。上記のような短縮形式もサポートされています。
color.hover.border 文字列 '#2B7CE9' マウスがノード上にホバーしたときの境界の色です(interactionモジュールでホバーが有効になっている場合)。
color.hover.background 文字列 '#D2E5FF' マウスがノード上にホバーしたときの背景の色です(interactionモジュールでホバーが有効になっている場合)。
ctxRenderer 関数 未定義 この関数を使用すると、キャンバス上に任意の形状や線を描画できます(形状の描画方法については、こちらのガイドを参照してください)。このプロパティは、shapeが'custom'に設定されている場合のみ使用されます。
opacity 数値 未定義 ノード全体の不透明度です(境界、背景、画像、シャドウの不透明度を上書きします)。
fixed.x ブール値 false trueの場合、ノードはX方向に移動しません。
fixed.y ブール値 false trueの場合、ノードはY方向に移動しません。
font.color 文字列 '#343434' ラベルのテキストの色です。
font.size 数値 14 ラベルのテキストのサイズです。
font.face 文字列 'arial' ラベルのテキストのフォント(またはフォントファミリ)です。
font.background 文字列 未定義 undefinedでない場合、色の文字列が指定されている場合、ラベルの背景に背景の長方形が描画されます。
font.strokeWidth 数値 0 テキストの周りにストロークを描画する場合、値を指定します。0より大きい値が指定された場合、ストロークが描画されます。
font.strokeColor 文字列 '#ffffff' ストロークが指定された場合のストロークの色です。ストロークの値が0より大きい場合に適用されます。
font.align 文字列 'center' ラベルのテキストの配置方法を指定します。'left'に設定すると、テキストは左揃えになります。それ以外の場合はデフォルトの'center'になります。
font.vadjust 数値 0 ラベルテキストの基本フォントの垂直位置補正値です(正の値は下方向)。
font.multi ブール値または文字列 false falseの場合、ラベルは基本フォントで描画されるテキストとして扱われます。trueまたは'html'の場合、ラベルは太字、斜体、コードのマークアップを持つ複数のフォントで描画されることがあります(htmlとして解釈されます)。値が'markdown'または'md'の場合、ラベルは太字、斜体、コードのマークアップを持つ複数のフォントで描画されることがあります(markdownとして解釈されます)。太字、斜体、太字斜体、等幅フォントは、それぞれfont.bold、font.ital、font.boldital、font.monoプロパティで設定できます。
font.bold.color 文字列 '#343434' ラベルテキストの太字フォントの色です。基本フォントの色がデフォルト値として使用されます。
font.bold.size 数値 14 ラベルテキストの太字フォントのサイズです。基本フォントのサイズがデフォルト値として使用されます。
font.bold.face 文字列 'arial' ラベルテキストの太字フォントのフォント(またはフォントファミリ)です。基本フォントのフォントがデフォルト値として使用されます。
font.bold.mod 文字列 'bold' ラベルテキストの太字フォントを決定する際に、faceとsizeに追加される文字列です。
font.bold.vadjust 数値 0 ラベルテキストの太字フォントの垂直位置補正値です(正の値は下方向)。基本フォントのvalignがデフォルト値として使用されます。
font.ital.color 文字列 '#343434' ラベルテキストの斜体フォントの色です。基本フォントの色がデフォルト値として使用されます。
font.ital.size 数値 14 ラベルテキストの斜体フォントのサイズです。基本フォントのサイズがデフォルト値として使用されます。
font.ital.face 文字列 'arial' ラベルテキストの斜体フォントのフォント(またはフォントファミリ)です。基本フォントのフォントがデフォルト値として使用されます。
font.ital.mod 文字列 'italic' ラベルテキストの斜体フォントを決定する際に、faceとsizeに追加される文字列です。
font.ital.vadjust 数値 0 ラベルテキストの斜体フォントの垂直位置補正値です(正の値は下方向)。基本フォントのvalignがデフォルト値として使用されます。
font.boldital.color 文字列 '#343434' ラベルテキストの太字斜体フォントの色です。基本フォントの色がデフォルト値として使用されます。
font.boldital.size 数値 14 ラベルテキストの太字斜体フォントのサイズです。基本フォントのサイズがデフォルト値として使用されます。
font.boldital.face 文字列 'arial' ラベルテキストの太字斜体フォントのフォント(またはフォントファミリ)です。基本フォントのフォントがデフォルト値として使用されます。
font.boldital.mod 文字列 'bold' ラベルテキストの太字斜体フォントを決定する際に、faceとsizeに追加される文字列です。
font.boldital.vadjust 数値 0 ラベルテキストの太字斜体フォントの垂直位置補正値です(正の値は下方向)。基本フォントのvalignがデフォルト値として使用されます。
font.mono.color 文字列 '#343434' ラベルテキストの等幅フォントの色です。基本フォントの色がデフォルト値として使用されます。
font.mono.size 数値 15 ラベルテキストの等幅フォントのサイズです。基本フォントのサイズがデフォルト値として使用されます。
font.mono.face 文字列 'courier new' ラベルテキストの等幅フォントのフォント(またはフォントファミリ)です。
font.mono.mod 文字列 '' ラベルテキストの等幅フォントを決定する際に、faceとsizeに追加される文字列です。
font.mono.vadjust 数値 2 ラベルテキストの等幅フォントの垂直位置補正値です(正の値は下方向)。基本フォントのvalignがデフォルト値として使用されます。
group 文字列 未定義 未定義でない場合、ノードは指定されたグループに属します。そのグループのスタイル情報がこのノードに適用されます。ノード固有のスタイル設定はグループのスタイル設定を上書きします。
heightConstraint.minimum 数値 未定義 数値が指定された場合、ノードの最小の高さがその値に設定されます。ノードの高さが最小値よりも小さい場合、高さは最小値に設定されます。
heightConstraint.valign 文字列 'middle' 有効な値は 'top'、'middle'、'bottom' です。指定された場合、ラベルテキストの高さが最小値(上下のマージンを含む)よりも小さい場合、指定された位置に垂直方向にオフセットされます。
hidden ブール値 false trueの場合、ノードは表示されません。ただし、物理シミュレーションの一部としては機能します!
icon.face 文字列 'FontAwesome' これらのオプションは、shapeがiconに設定されている場合にのみ使用されます。faceオプションの可能な値は、'FontAwesome'や'Ionicons'など、ページにロードされたフォントのいずれかです。
icon.code 文字列 未定義 アイコンのコードです。例えば、'\uf007'です。
icon.size 数値 50 アイコンのサイズです。
icon.color 文字列 '#2B7CE9' アイコンの色です。
icon.weight 数値または文字列 未定義 選択状態に関係なくウェイトを強制することができます。例えば、Font Awesome 5では、ウェイトを'bold'または700に強制しないと正常に機能しません。このオプションが設定された場合、選択は太字の代わりにサイズが大きく表示されます。
id 数値または文字列 未定義 ノードのIDです。ノードにはIDが必須であり、ユニークである必要があります。これは個々のノードごとに設定する必要があります。グローバルではないことに注意してください。
image.unselected 文字列 未定義 選択されていない(デフォルト)画像のURL。
image.selected 文字列 未定義 選択された画像のURL。
imagePadding.top 数値 0 形状内の画像の上部パディングがこの値に設定されます。
imagePadding.right 数値 0 形状内の画像の右マージンがこの値に設定されます。
imagePadding.bottom 数値 0 形状内の画像の下マージンがこの値に設定されます。
imagePadding.left 数値 0 形状内の画像の左マージンがこの値に設定されます。
label 文字列 未定義 ラベルはノード内またはノードの下に表示されるテキストの部分です(形状に応じて異なります)。
labelHighlightBold ブール値 true ノードが選択された場合、ラベルが太字になるかどうかを決定します。
level 数値 未定義 階層レイアウトを使用している場合、レベルはノードの位置を決定します。
margin.top 数値 5 ラベルの上部マージンがこの値に設定されます。
margin.right 数値 5 ラベルの右マージンがこの値に設定されます。
margin.bottom 数値 5 ラベルの下マージンがこの値に設定されます。
margin.left 数値 5 ラベルの左マージンがこの値に設定されます。
mass 数値 1 barnesHut物理モデル(デフォルトで有効)は、逆重力モデルに基づいています。ノードの質量を増やすと、反発力が増します。
physics ブール値 true falseの場合、ノードは物理シミュレーションの一部ではありません。手動でドラッグする以外は移動しません。
scaling.min 数値 10 ノードに値がある場合、その値、スケーリング関数、最小値、最大値のオプションを使用してノードのサイズが決まります。最小値は許容される最小値です。
scaling.max 数値 30 ノードのサイズが値オプションを使用してスケーリングされる場合、これが設定された最大の許容サイズです。
scaling.label オブジェクトまたはブール値 オブジェクト ラベルがノードとともにスケーリングするかどうかを決定します。カスタマイズするために、オブジェクトを提供できます。
scaling.label.enabled ブール値 false ラベルのスケーリングをオンまたはオフに切り替えます。このオプションが定義されていない場合、このオブジェクトのいずれかのプロパティが定義されている場合、値はtrueに設定されます。
scaling.label.min 数値 14 スケーリング時のラベルの最小フォントサイズです。
scaling.label.max 数値 30 スケーリング時のラベルの最大フォントサイズです。
scaling.label.maxVisible 数値 30 ズームインすると、フォントも大きく表示されます。このオプションを使用して、知覚されるフォントサイズを制限できます。30に設定されている場合、100%でズームインしてもフォントはサイズ30より大きくなりません。
scaling.label.drawThreshold 数値 5 ズームアウトすると、フォントは小さく表示されます。このオプションは、フォントが表示される下限を定義します。フォントスケーリングを使用する場合、maxVisibleとともに使用して、ズームアウト時に重要なノードのラベルを最初に表示し、ズームイン時に残りのラベルを表示することができます。
scaling.customScalingFunction 関数 説明に記載あり ノードに値フィールドがある場合、この関数は値に基づいてノードのサイズをスケーリングする方法を決定します。デフォルトの関数は次のとおりです。
shadow.enabled ブール値 false 影のキャスティングを切り替えます。このオプションが定義されていない場合、このオブジェクトのいずれかのプロパティが定義されている場合、値はtrueに設定されます。
shadow.color 文字列 'rgba(0,0,0,0.5)' 影の色、文字列形式で指定されます。サポートされている形式は 'rgb(255,255,255)', 'rgba(255,255,255,1)', '#FFFFFF' です。
shadow.size Number 10 影のぼかしサイズです。
shadow.x Number 5 X方向のオフセットです。
shadow.y Number 5 Y方向のオフセットです。
shape String 'ellipse' ノードの見た目を定義します。ラベルが内部にあるタイプとラベルが下部にあるタイプの2つのタイプがあります。3番目のタイプは、ノードを表すために独自の形状を描画できるカスタムシェイプです。
shapeProperties.borderDashes Array or Boolean false ボーダーを持つすべての形状に適用されるプロパティです。配列を提供してダッシュを設定します。配列形式: [ダッシュの長さ, ギャップの長さ]。またはブール値を使用できます。falseは無効化、trueはデフォルト値 [5,15] です。
shapeProperties.borderRadius Number 6 ボックス形状にのみ使用されるプロパティで、形状の角の丸みを決定します。
shapeProperties.interpolation Boolean true このプロパティは画像とcircularImageの形状にのみ適用されます。trueの場合、画像はスケーリングダウン時にリサンプリングされ、計算時間の犠牲を払ってより良い画像が生成されます。
shapeProperties.useImageSize Boolean false このプロパティは画像とcircularImageの形状にのみ適用されます。falseの場合、サイズオプションが使用され、trueの場合は画像のサイズが使用されます。重要: trueに設定されている場合、valueオプションで画像のサイズをスケーリングすることはできません!
shapeProperties.useBorderWithImage Boolean false このプロパティはimage形状にのみ適用されます。trueの場合、カラーオブジェクトが使用されます。背景色の矩形が背後に描画され、ボーダーがあります。つまり、すべてのボーダーオプションが考慮されます。
shapeProperties.coordinateOrigin String 'center' このプロパティはimageとcircularImageの形状にのみ適用されます。ノードの(x, y)が画像の中心か左上隅かを決定します。
size Number 25 サイズはラベルが内部にないノード形状のサイズを決定するために使用されます。これらの形状には以下が含まれます: image、circularImage、diamond、dot、star、triangle、triangleDown、hexagon、square、icon。
title String or Element undefined ユーザーがノード上にホバーしたときに表示されるポップアップのタイトルです。タイトルはHTML要素またはプレーンテキストの文字列であることができます。HTMLを解析したい場合は、HTML in titlesの例を参照してください。
value Number undefined 値が設定されている場合、ノードは上記で定義されたスケーリングオプションを使用してスケーリングされます。
widthConstraint.minimum Number undefined 数値が指定されている場合、ノードの最小幅がその値に設定されます。ノードの幅が値より小さい場合、幅は最小値に設定されます。
widthConstraint.maximum Number undefined 数値が指定されている場合、ノードの最大幅がその値に設定されます。ノードのラベルの行は最大値を下回るようにスペースで分割されます。
x Number undefined X軸上のノードの初期位置を指定します。階層レイアウトを使用している場合、この値は効果を持ちません。スタビリゼーションを使用している場合、安定化された位置は初期位置と異なる場合があります(ノードはこの位置から開始しますが、安定化設定に基づいて異なる位置に移動する場合があります)。ノードをこの位置に固定するには、物理エンジンをオフにするか、fixed.xノードオプションをtrueに設定します。
y Number undefined Y軸上のノードの初期位置を指定します。階層レイアウトを使用している場合、この値は効果を持ちません。スタビリゼーションを使用している場合、安定化された位置は初期位置と異なる場合があります(ノードはこの位置から開始しますが、安定化設定に基づいて異なる位置に移動する場合があります)。ノードをこの位置に固定するには、物理エンジンをオフにするか、fixed.yノードオプションをtrueに設定します。

groupsについて

var options = {
  groups:{
    useDefaultGroups: true,
    myGroupId:{
    /*node options*/
    }
  }
}

network.setOptions(options);
Name Type Default Description
useDefaultGroups Boolean true もしノードにGroupsモジュールに定義されていないグループがある場合、モジュールは使用できるグループごとにループし、不明なグループごとに1つを割り当てます。すべてが使用された場合、最初のグループに戻ります。これをfalseに設定すると、このサイクルでデフォルトのグループは使用されません。
group* Object 特定のグループのサブセットに適用されるスタイル情報を含む複数のグループを追加することができます。ここでノードモジュールで説明されているすべてのオプションが使用できます(同じidやx、y座標を設定することはありません)。

layoutについて

var options = {
  layout: {
    randomSeed: undefined,
    improvedLayout:true,
    clusterThreshold: 150,
    hierarchical: {
      enabled:false,
      levelSeparation: 150,
      nodeSpacing: 100,
      treeSpacing: 200,
      blockShifting: true,
      edgeMinimization: true,
      parentCentralization: true,
      direction: 'UD',  // UD, DU, LR, RL
      sortMethod: 'hubsize',  // hubsize, directed
      shakeTowards: 'leaves'  // roots, leaves
    }
  }
}

network.setOptions(options);
Name Type Default Description
randomSeed Number or String undefined 階層レイアウトを使用しない場合、ノードは最初にランダムに配置されます。つまり、落ち着いた結果は毎回異なります。手動でランダムシードを提供すると、レイアウトは毎回同じになります。理想的には、未定義のシードで試し、レイアウトが満足できるまでリロードし、getSeed()メソッドを使用してシードを確認します。
improvedLayout Boolean true 有効にすると、ネットワークは初期レイアウトにKamada Kawaiアルゴリズムを使用します。100以上のノードがあるネットワークでは、クラスタリングが自動的に行われ、ノードの数が減少します。これにより、安定化時間が大幅に改善される場合があります。ネットワークが非常に相互接続されている場合(葉ノードがないかわずかな場合)、これは機能せず、古い方法に戻ります。将来的にはパフォーマンスが改善されます。
clusterThreshold Number 150 improvedLayoutが適用されるクラスタのしきい値です。
hierarchical.enabled Boolean false 階層レイアウトシステムの使用を切り替えます。このオプションが定義されていない場合、このオブジェクトのプロパティのいずれかが定義されている場合はtrueに設定されます。
hierarchical.levelSeparation Number 150 異なるレベル間の距離です。
hierarchical.nodeSpacing Number 100 自由軸上のノード間の最小距離です。これは初期レイアウトのみです。物理エンジンを有効にすると、ノード間の距離は有効なノード間の距離になります。
hierarchical.treeSpacing Number 200 異なるツリー(独立したネットワーク)間の距離です。これは初期レイアウトのみです。物理エンジンを有効にすると、斥力モデルはツリー間の距離を示します。
hierarchical.blockShifting Boolean true 空白スペースを減らすためのメソッドです。単独で使用するか、エッジ最小化と併用することができます。各ノードは空白スペースをチェックし、ノードのスペーシングを任意のレベルで尊重しながらそのブランチをできるだけ長くシフトします。これは主に初期レイアウトのためです。物理エンジンを有効にすると、レイアウトは物理エンジンによって決定されます。ただし、安定化時間が大幅に短縮されます!
hierarchical.edgeMinimization Boolean true 空白スペースを減らすためのメソッドです。単独で使用するか、ブロックシフトと併用することができます。ブロックシフトを有効にすると、レイアウトプロセスが通常より高速化されます。各ノードは、エッジの総長を減らすために自由軸に沿って移動しようとします。これは主に初期レイアウトのためです。物理エンジンを有効にすると、レイアウトは物理エンジンによって決定されます。ただし、安定化時間が大幅に短縮されます!
hierarchical.parentCentralization Boolean true trueの場合、レイアウトアルゴリズムが完了した後に親ノードが再び中央に配置されます。
hierarchical.direction String 'UD' 階層レイアウトの方向です。使用可能なオプションは次のとおりです:UD、DU、LR、RL。簡単に説明すると、up-down(上下)、down-up(下上)、left-right(左右)、right-left(右左)です。
hierarchical.sortMethod String 'hubsize' データに基づいてノードのレベルを確定するために使用されるアルゴリズムです。可能なオプションは次のとおりです:hubsize、directed。
hierarchical.shakeTowards String 'roots' ダイレクトレイアウトの場合

interactionについて

var options = {
  interaction:{
    dragNodes:true,
    dragView: true,
    hideEdgesOnDrag: false,
    hideEdgesOnZoom: false,
    hideNodesOnDrag: false,
    hover: false,
    hoverConnectedEdges: true,
    keyboard: {
      enabled: false,
      speed: {x: 10, y: 10, zoom: 0.02},
      bindToWindow: true,
      autoFocus: true,
    },
    multiselect: false,
    navigationButtons: false,
    selectable: true,
    selectConnectedEdges: true,
    tooltipDelay: 300,
    zoomSpeed: 1,
    zoomView: true
  }
}

network.setOptions(options);
Name Type Default Description
dragNodes Boolean true trueの場合、固定されていないノードはユーザーによってドラッグできます。
dragView Boolean true trueの場合、ユーザーはビューをドラッグできます。
hideEdgesOnDrag Boolean false trueの場合、ビューをドラッグしているときにエッジが描画されません。これにより、ドラッグ時の応答性が大幅に向上し、ユーザーエクスペリエンスが向上します。
hideEdgesOnZoom Boolean false trueの場合、ズーム時にエッジが描画されません。これにより、ズーム時の応答性が大幅に向上し、ユーザーエクスペリエンスが向上します。
hideNodesOnDrag Boolean false trueの場合、ビューをドラッグしているときにノードが描画されません。これにより、ドラッグ時の応答性が大幅に向上し、ユーザーエクスペリエンスが向上します。
hover Boolean false trueの場合、ノードはマウスが上に移動するとホバーカラーを使用します。
hoverConnectedEdges Boolean true trueの場合、ノードをホバーすると、接続されているエッジがハイライト表示されます。
keyboard.enabled Boolean false キーボードショートカットの使用を切り替えます。このオプションが定義されていない場合、このオブジェクトのプロパティのいずれかが定義されている場合はtrueに設定されます。
keyboard.speed.x Number 1 キーを押すかナビゲーションボタンを押すと、ビューがx方向に移動する速度です。
keyboard.speed.y Number 1 キーを押すかナビゲーションボタンを押すと、ビューがy方向に移動する速度です。
keyboard.speed.zoom Number 0.02 キーを押すかナビゲーションボタンを押すと、ビューのズームインまたはズームアウト速度です。
keyboard.bindToWindow Boolean true キーボードショートカットをウィンドウにバインドする場合、フォーカスのあるDOMオブジェクトに関係なく機能します。ページに複数のネットワークがある場合、これをfalseに設定して、キーボードショートカットがフォーカスを持つネットワークでのみ機能するようにすることができます。
keyboard.autoFocus Boolean true keyboard.bindToWindow=falseの場合、このオプションを使用して、ホバー時にネットワークを自動的にフォーカスしないようにすることができます。
multiselect Boolean false trueの場合、長押し(またはタッチ)およびコントロールキーを押すことで選択が追加されます。
navigationButtons Boolean false trueの場合、ナビゲーションボタンがネットワークキャンバスに描画されます。これらはHTMLボタンであり、CSSを使用して完全にカスタマイズすることができます。
selectable Boolean true trueの場合、ユーザーはノードとエッジを選択できます。
selectConnectedEdges Boolean true trueの場合、ノードを選択すると、接続されているエッジがハイライト表示されます。
tooltipDelay Number 300 ノードまたはエッジに'title'フィールドが定義されている場合、ポップアップツールチップとして表示することができます。ツールチップ自体はHTML要素であり、CSSを使用して完全にスタイルを設定することができます。遅延は、ツールチップが表示されるまでのミリ秒数です。
zoomSpeed Number 1 ズームの速さ/荒さまたは遅さ/精度です。
zoomView Boolean true trueの場合、ユーザーはズームインできます。

manipulationについて

var options = {
  manipulation: {
    enabled: false,
    initiallyActive: false,
    addNode: true,
    addEdge: true,
    editNode: undefined,
    editEdge: true,
    deleteNode: true,
    deleteEdge: true,
    controlNodeStyle:{
    // all node options are valid.
    }
  }
}

network.setOptions(options);
Name Type Default Description
enabled Boolean false 操作システムをオンまたはオフに切り替えます。falseの場合でも、メソッドを介した操作APIは動作します。このプロパティはオプションです。以下のオプションのいずれかを定義し、enabledが未定義の場合、trueに設定されます。
initiallyActive Boolean true ツールバーが最初に表示されるか、最初に編集ボタンのみが表示されるかを切り替えます。
addNode BooleanまたはFunction true 特定の機能をオンまたはオフに切り替えるためにこれらのオプションを使用するか、それらにハンドラ関数をアタッチします。これらの関数はアクションが実行される前に呼び出されます。ノードが操作システムを介して追加される場合、最初にaddNode関数が呼び出されます。これにより、ユーザーに対してGUIを提供したり、プロセスを中止したり、他の任意の処理を行ったりすることができます。editNode機能を除くすべての機能では、これらのハンドラ関数はオプションです。ブール値を指定すると、操作システムのGUI上の「ノードの追加」ボタンの切り替えのみが行われます。ハンドリング関数の欠如は、メソッドを使用する場合にAPIに影響を与える可能性があります。関数が指定されている場合、ユーザーが「addNode」モードでキャンバスをクリックしたときに呼び出されます。この関数は2つの変数を受け取ります:作成可能なノードのプロパティとコールバック関数。新しいノードのプロパティをコールバック関数と共に呼び出すと、ノードが追加されます。
addEdge BooleanまたはFunction true ブール値の場合、GUIの「エッジの追加」ボタンの使用可否を切り替えます。メソッドを介したAPIは引き続き機能しますが、(明らかなことですが)ハンドラ関数は存在しません。関数が指定されている場合、ユーザーが「addEdge」モードで新しいエッジを1つのノードから次のノードにドラッグすると呼び出されます。この関数は2つの変数を受け取ります:作成可能なエッジのプロパティとコールバック関数。新しいエッジのプロパティをコールバック関数と共に呼び出すと、エッジが追加されます。
editNode Function undefined ハンドリング関数が提供されていない場合、ノードの編集は無効になります。この関数は、ノードが選択され、ツールバーの「ノードの編集」ボタンが押されたときに呼び出されます。この関数は、addNode関数と同様に、ノードのデータとコールバック関数を受け取ります。
deleteNode BooleanまたはFunction true ブール値の場合、GUIでノードの削除を切り替えます。関数の場合、ノードが選択され、「選択したノードを削除」ボタンが押されたときに呼び出されます。関数を使用する場合、コールバックと、選択されたノードIDの配列と選択されたエッジIDの配列を含むオブジェクトが渡されます。コールバックが実行されれば、これらのアイテムが削除されます。
deleteEdge BooleanまたはFunction true ブール値の場合、GUIでエッジの削除を切り替えます。関数の場合、エッジが選択され、「選択したエッジを削除」ボタンが押されたときに呼び出されます。関数を使用する場合、コールバックと、選択されたノードIDの配列(空)と選択されたエッジIDの配列を含むオブジェクトが渡されます。コールバックが実行されれば、これらのアイテムが削除されます。
controlNodeStyle Object Object 任意のスタイリング情報をここに指定できます。ノードモジュールで説明されているすべてのフィールドが許可されます(id、x、y、fixedは明らかに除外されます)。

physicsについて

var options = {
  physics:{
    enabled: true,
    barnesHut: {
      theta: 0.5,
      gravitationalConstant: -2000,
      centralGravity: 0.3,
      springLength: 95,
      springConstant: 0.04,
      damping: 0.09,
      avoidOverlap: 0
    },
    forceAtlas2Based: {
      theta: 0.5,
      gravitationalConstant: -50,
      centralGravity: 0.01,
      springConstant: 0.08,
      springLength: 100,
      damping: 0.4,
      avoidOverlap: 0
    },
    repulsion: {
      centralGravity: 0.2,
      springLength: 200,
      springConstant: 0.05,
      nodeDistance: 100,
      damping: 0.09
    },
    hierarchicalRepulsion: {
      centralGravity: 0.0,
      springLength: 100,
      springConstant: 0.01,
      nodeDistance: 120,
      damping: 0.09,
      avoidOverlap: 0
    },
    maxVelocity: 50,
    minVelocity: 0.1,
    solver: 'barnesHut',
    stabilization: {
      enabled: true,
      iterations: 1000,
      updateInterval: 100,
      onlyDynamicEdges: false,
      fit: true
    },
    timestep: 0.5,
    adaptiveTimestep: true,
    wind: { x: 0, y: 0 }
  }
}

network.setOptions(options);
Name Type Default Description
enabled Boolean true 物理システムのオンまたはオフを切り替えます。このプロパティは任意です。以下のオプションのいずれかを定義する場合、enabledが未定義の場合はtrueに設定されます。
barnesHut.theta Number 0.5 このパラメータは、統合された長距離力と個々の短距離力の境界を決定します。単純化すると、高い値は速くなりますが、エラーが増えます。低い値は遅くなりますが、エラーが少なくなります。
barnesHut.gravitationalConstant Number -2000 重力は引き付けます。私たちは反発が好きです。したがって、値は負の値です。反発を強くしたい場合は、値を減らします(たとえば、-10000、-50000)。
barnesHut.centralGravity Number 0.3 全体のネットワークを中心に引き寄せる中心重力アトラクタがあります。
barnesHut.springLength Number 95 エッジはバネとしてモデル化されます。このspringLengthは、バネの休止長さです。
barnesHut.springConstant Number 0.04 これはバネの「堅さ」です。値が高いほど強力なバネになります。
barnesHut.damping Number 0.09 受け入れ範囲:[0..1]。ダンピング係数は、前の物理シミュレーションのイテレーションから次のイテレーションに引き継がれる速度の割合です。
barnesHut.avoidOverlap Number 0 受け入れ範囲:[0..1]。0より大きい場合、ノードのサイズが考慮されます。距離は、ノードの包括円の半径から計算されます。重力モデルおよび値1は最大の重なり回避です。
forceAtlas2Based.theta Number 0.5 このパラメータは、統合された長距離力と個々の短距離力の境界を決定します。単純化すると、高い値は速くなりますが、エラーが増えます。低い値は遅くなりますが、エラーが少なくなります。
forceAtlas2Based.gravitationalConstant Number -50 これはbarnesHutメソッドと似ていますが、減衰は二次ではなく線形です。接続性も質量の要因として考慮されます。反発を強くしたい場合は、値を減らします(たとえば、-1000、-2000)。
forceAtlas2Based.centralGravity Number 0.01 全体のネットワークを中心に引き寄せる中心重力アトラクタがあります。これは距離に依存しません。
forceAtlas2Based.springLength Number 100 エッジはバネとしてモデル化されます。このspringLengthは、バネの休止長さです。
forceAtlas2Based.springConstant Number 0.08 これはバネの「堅さ」です。値が高いほど強力なバネになります。
forceAtlas2Based.damping Number 0.4 受け入れ範囲:[0..1]。ダンピング係数は、前の物理シミュレーションのイテレーションから次のイテレーションに引き継がれる速度の割合です。
forceAtlas2Based.avoidOverlap Number 0 受け入れ範囲:[0..1]。0より大きい場合、ノードのサイズが考慮されます。距離は、ノードの包括円の半径から計算されます。重力モデルおよび値1は最大の重なり回避です。
repulsion.nodeDistance Number 100 これは反発の影響範囲です。
repulsion.centralGravity Number 0.2 全体のネットワークを中心に引き寄せる中心重力アトラクタがあります。
repulsion.springLength Number 200 エッジはバネとしてモデル化されます。このspringLengthは、バネの休止長さです。
repulsion.springConstant Number 0.05 これはバネの「堅さ」です。値が高いほど強力なバネになります。
repulsion.damping Number 0.09 受け入れ範囲:[0..1]。ダンピング係数は、前の物理シミュレーションのイテレーションから次のイテレーションに引き継がれる速度の
hierarchicalRepulsion.nodeDistance Number 120 これは反発の影響範囲です。
hierarchicalRepulsion.centralGravity Number 0.0 全体のネットワークを中心に引き寄せる中心重力アトラクタがあります。
hierarchicalRepulsion.springLength Number 100 エッジはバネとしてモデル化されます。このspringLengthは、バネの休止長さです。
hierarchicalRepulsion.springConstant Number 0.01 これはバネの「堅さ」です。値が高いほど強力なバネになります。
hierarchicalRepulsion.damping Number 0.09 受け入れ範囲:[0..1]。ダンピング係数は、前の物理シミュレーションのイテレーションから次のイテレーションに引き継がれる速度の割合です。
hierarchicalRepulsion.avoidOverlap Number 0 受け入れ範囲:[0..1]。0より大きい場合、ノードのサイズが考慮されます。距離は、ノードの包括円の半径から計算されます。重力モデルおよび値1は最大の重なり回避です。
maxVelocity Number 50 物理モジュールはノードの最大速度を制限して安定化の時間を増やします。これが最大値です。
minVelocity Number 0.1 すべてのノードの最小速度に達したら、ネットワークが安定化したと見なし、シミュレーションが停止します。
solver String 'barnesHut' 独自のソルバーを選択できます。可能なオプション:'barnesHut'、'repulsion'、'hierarchicalRepulsion'、'forceAtlas2Based'。hierarchicalレイアウトを設定した場合、hierarchical repulsionソルバーが自動的に選択されます(ここに入力した内容に関係なく)。
stabilization.enabled Boolean true 安定化を切り替えます。これはオプションのプロパティです。未定義の場合、このオブジェクトのいずれかのプロパティが定義されている場合は自動的にtrueに設定されます。
stabilization.iterations Number 1000 物理モジュールは、最大イテレーション数でネットワークを安定化しようとします。ネットワークが指定された回数より少ないイテレーションで安定化した場合、最大数に到達する前に終了します。
stabilization.updateInterval Number 50 安定化中にDOMがフリーズすることがあります。安定化を途中で分割して、ローディングバーを表示するために使用できます。intervalは、安定化Progressイベントがトリガーされるまでのイテレーション数を指定します。
stabilization.onlyDynamicEdges Boolean false すべてのノードの位置を事前に定義し、ダイナミックスムーズエッジのみを安定化する場合はtrueに設定します。これにより、可視性のないダイナミックスムーズカーブサポートノードを除くすべてのノードがフリーズします。可視ノードを移動および安定化させたい場合は、これを使用しないでください。
stabilization.fit Boolean true 安定化が完了したときにビューを全ノードにフィットさせるかどうかを切り替えます。
timestep Number 0.5 物理シミュレーションは離散的です。つまり、時間に基づいてステップを踏み、力を計算し、ノードを移動し、別のステップを踏みます。この数値を増やすとステップが大きくなり、ネットワークが不安定になる可能性があります。ネットワークで多くのジャタリ運動が見られる場合は、この値を少し減らすと良いでしょう。
adaptiveTimestep Boolean true スタビライゼーションが有効な場合にのみ、タイムステップが自動的に適応されます。タイムステップは、安定化時にのみ適用され、安定化時間を大幅に短縮するために賢明に調整されます。上記で設定されたタイムステップは、最小タイムステップとして取られます。これにより、improvedLayoutアルゴリズムを使用することでさらなる改善が可能です。
wind.x Number 0 非固定ノードを右に押すために適用される力の量(正の値)または左に押すための力(負の値)です。
wind.y Number 0 非固定ノードを下に押すために適用される力の量(正の値)または上に押すための力(負の値)です。