ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

highlight

プロットしたグラフのノードおよびエッジを強調表示

構文

highlight(H,nodeIDs)
highlight(H,G)
highlight(H,s,t)
highlight(___,Name,Value)

説明

highlight(H,nodeIDs) は、nodeIDs で指定されたノードのマーカー サイズを増加して、そのノードを強調表示します。

highlight(H,G) は、グラフ G のノードのマーカー サイズおよびエッジのライン幅をそれぞれ増加して、ノードおよびエッジを強調表示します。G のノード数およびエッジのサブセット数は、H の基礎グラフと同じでなければなりません。G に繰り返されるエッジが含まれる場合、それらはすべて強調表示されます。次数 0 の孤立ノードは強調表示されません。

highlight(H,s,t) は、指定されたソース ノードとターゲット ノードのペア st 間のすべてのエッジを、エッジのライン幅を増やして強調表示します。ノード ペア (s,t) ではなくエッジのインデックスが使用できる場合は、代わりに highlight(H,'Edges',idx) を使用します。

highlight(___,Name,Value) は、前述の構文にある任意の入力引数を組み合わせて、1 つ以上の名前と値のペアの引数で指定される追加のオプションを使用します。たとえば、highlight(H,nodes,'NodeColor','g') は、ノードのマーカー サイズを増加するのではなく、ノードの色を緑に変更して、ノードのサブセットを強調表示します。

すべて折りたたむ

グラフを作成してプロットします。GraphPlot オブジェクトのハンドル h を返します。

s = 1;
t = 2:6;
G = graph(s,t);
h = plot(G,'Layout','force')

h = 
  GraphPlot with properties:

     NodeColor: [0 0.4470 0.7410]
    MarkerSize: 4
        Marker: 'o'
     EdgeColor: [0 0.4470 0.7410]
     LineWidth: 0.5000
     LineStyle: '-'
     NodeLabel: {'1'  '2'  '3'  '4'  '5'  '6'}
     EdgeLabel: {}
         XData: [3.8317e-04 0.6403 0.4648 -1.3929 1.7883 -1.5009]
         YData: [9.6820e-04 1.6734 -1.7296 1.1251 -0.0922 -0.9777]
         ZData: [0 0 0 0 0 0]

  Show all properties

ノード 1 および 3 のマーカー サイズを増加して強調表示します。

highlight(h,[1 3])

ノード 1 および 3 の色を変更して強調表示します。

highlight(h,[1 3],'NodeColor','g')

グラフを作成してプロットします。GraphPlot オブジェクトのハンドル h を返します。

s = [1 1 1 1 1 1 2 3 4 5 6 7 7 7 7 8 9 10 11 8 6];
t = [2 3 4 5 6 7 3 4 5 6 2 8 9 10 11 10 10 11 8 1 11];
G = graph(s,t);
h = plot(G)

h = 
  GraphPlot with properties:

     NodeColor: [0 0.4470 0.7410]
    MarkerSize: 4
        Marker: 'o'
     EdgeColor: [0 0.4470 0.7410]
     LineWidth: 0.5000
     LineStyle: '-'
     NodeLabel: {'1'  '2'  '3'  '4'  '5'  '6'  '7'  '8'  '9'  '10'  '11'}
     EdgeLabel: {}
         XData: [1x11 double]
         YData: [1x11 double]
         ZData: [0 0 0 0 0 0 0 0 0 0 0]

  Show all properties

グラフの最小全域木を計算します。最小全域木のエッジのライン幅を増加し、色を変更して、プロット内の最小全域木の部分グラフを強調表示します。

[T,p] = minspantree(G);
highlight(h,T,'EdgeColor','r','LineWidth',1.5)

グラフを作成してプロットします。GraphPlot オブジェクトのハンドル h を返します。

n = 10;
A = delsq(numgrid('L',n+2));
G = graph(A,'omitselfloops'); 
G.Edges.Weight = ones(numedges(G),1);
h = plot(G);

ノード 74 と 21 の間の最短経路上にあるノードとエッジの色を緑に変更して、その最短経路を強調表示します。

path = shortestpath(G,74,21);
highlight(h,path,'NodeColor','g','EdgeColor','g')

一辺が 8 ノードの正方形グリッドを表すグラフを作成します。グラフをプロットし、GraphPlot オブジェクトのハンドル p を返します。

n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'omitselfloops');
p = plot(G);

ノード 36 の隣接ノードを求めます。

n36 = neighbors(G,36)
n36 = 4×1

    28
    35
    37
    44

highlight を使用してノード 36 の色を緑に変更し、その隣接ノードおよび連結エッジを赤に変更します。

highlight(p,36,'NodeColor',[0 0.75 0])
highlight(p,n36,'NodeColor','red')
highlight(p,36,n36,'EdgeColor','red')

有向グラフを作成してプロットします。GraphPlot オブジェクトのハンドル h を返します。

G = digraph(bucky);
h = plot(G);

ノード 1 とノード 56 の間の最大フローを計算します。maxflow に 2 つの出力を指定して、非ゼロのフローの有向グラフ GF を返します。

[mf,GF] = maxflow(G,1,56)
mf = 3
GF = 
  digraph with properties:

    Edges: [28x2 table]
    Nodes: [60x0 table]

highlight を使用して、非ゼロのフロー値をもつエッジの色を変更します。また、ソース ノード 1 およびターゲット ノード 56 の色を緑に変更します。

highlight(h,GF,'EdgeColor',[0.9 0.3 0.1],'NodeColor',[0.9 0.3 0.1])
highlight(h,[1 56],'NodeColor','g')

多重グラフの 2 つのノード間の最短経路をプロットし、通過する特定のエッジを強調表示します。

5 つのノードをもつ重み付き多重グラフを作成します。複数のノード ペアの間には複数のエッジがあります。参照用にグラフをプロットします。

G = graph([1 1 1 1 1 2 2 3 3 3 4 4],[2 2 2 2 2 3 4 4 5 5 5 2],[2 4 6 8 10 5 3 1 5 6 8 9]);
p = plot(G,'EdgeLabel',G.Edges.Weight);

ノード 1 とノード 5 の間の最短経路を検出します。複数のノード ペア間に複数のエッジがあるため、shortestpath に 3 つの出力を指定して、最短経路が通過する特定のエッジが返されるようにします。

[P,d,edgepath] = shortestpath(G,1,5)
P = 1×5

     1     2     4     3     5

d = 11
edgepath = 1×4

     1     7     9    10

結果には、最短経路の合計の長さは 11 で、G.Edges(edgepath,:) により返されたエッジを通過することが示されます。

G.Edges(edgepath,:)
ans=4×2 table
    EndNodes    Weight
    ________    ______

     1    2       2   
     2    4       3   
     3    4       1   
     3    5       5   

関数 highlight を使用して、通過するエッジのインデックスを指定する 'Edges' 名前と値のペアを指定してこのエッジ経路を強調表示します。

highlight(p,'Edges',edgepath)

入力引数

すべて折りたたむ

入力グラフ プロット。GraphPlot オブジェクトとして指定します。関数 graph または digraph を使用してグラフを作成してから、GraphPlot オブジェクトを返す出力引数を指定して plot を使用します。

例: H = plot(G)

強調表示するノード。logical ベクトル、または 1 つ以上のノード インデックスまたはノード名として返されます。nodeIDs が logical ベクトルの場合、長さが numnodes(G) でなければなりません。

次の表に、1 つ以上のノードを数値ノード インデックスまたはノード名のいずれかで参照するさまざまな方法を示します。

形式単一ノード複数ノード
ノード インデックス

スカラー

例: 1

ベクトル

例: [1 2 3]

ノード名

文字ベクトル

例: 'A'

文字ベクトルの cell 配列

例: {'A' 'B' 'C'}

string スカラー

例: "A"

string 配列

例: ["A" "B" "C"]

nodeIDs は、highlight のオプションのパラメーター名と競合するノード名 ('Edges''EdgeColor' など) を指定してはいけません。このような場合には、代わりに findnode を使用してノード インデックスを渡します。

強調表示するグラフ。graph オブジェクトまたは digraph オブジェクトとして指定します。G のノードおよびエッジのサブセットは H の基礎グラフと同じでなければなりません。次数 0 の孤立ノードは強調表示されません。

ノード ペア。ノード インデックスまたはノード名の個別の引数として指定します。s および t に同じように配置された要素は、グラフ エッジのソース ノードおよびターゲット ノードを指定します。

s および t は、highlight のオプションのパラメーター名と競合するノード名 ('Edges''EdgeColor' など) を指定してはいけません。このような場合には、代わりに findnode を使用してノード インデックスを渡します。

例: highlight(H,[1 2],[3 3]) は、グラフ エッジ (1,3) および (2,3) を強調表示します。

例: highlight(H,'a','b') は、'a' から 'b' までのすべてのエッジを強調表示します。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: highlight(H,nodes,'NodeColor','y')

強調表示するエッジ

すべて折りたたむ

強調表示するエッジ。'Edges'、およびスカラー エッジ インデックス、エッジ インデックスのベクトルまたは logical ベクトルで構成されるコンマ区切りペアとして指定します。同じ 2 つのノード間に複数のエッジが存在する場合は、この名前と値のペアを使用して、ノード間の特定のエッジを強調表示します。

この名前と値のペアの値には、[path,d,edgepath] = shortestpath(…) など、shortestpath または shortestpathtree からの 3 番目の出力を指定できます。

例: highlight(p,'Edges',edgepath)

エッジのプロパティ

すべて折りたたむ

エッジの色。'EdgeColor' と、RGB 3 成分または色名で構成されるコンマ区切りのペアとして指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

    オプション説明等価の RGB 3 成分
    'red' または 'r'[1 0 0]
    'green' または 'g'[0 1 0]
    'blue' または 'b'[0 0 1]
    'yellow' または 'y'[1 1 0]
    'magenta' または 'm'マゼンタ[1 0 1]
    'cyan' または 'c'シアン[0 1 1]
    'white' または 'w'[1 1 1]
    'black' または 'k'[0 0 0]

例: plot(G,'EdgeColor','r') は赤のエッジをもつグラフ プロットを作成します。

ライン スタイル。'LineStyle' と、次の表に挙げるライン スタイルのいずれかで構成されるコンマ区切りのペアとして指定します。

文字ライン スタイル結果として得られる線
'-'実線

'--'破線

':'点線

'-.'一点鎖線

'none'ラインなしラインなし

エッジのライン幅。'LineWidth' と、ポイント単位の正の値で構成されるコンマ区切りのペアとして指定します。

例: 0.75

矢印のサイズ。ポイント単位の正の値として指定します。ArrowSize の既定値は、ノード数が 100 以下のグラフでは 7、ノード数が 100 を超えるグラフでは 4 です。

ArrowSize は有向グラフでのみ使用します。

例: 15

エッジ上での矢印の位置。[0 1] の値として指定します。値が 0 に近いと矢印はソース ノードに近くなり、値が 1 に近いと矢印はターゲット ノードに近くなります。既定値は 0.5 です。この場合、矢印はソース ノードとターゲット ノードの中間に配置されます。

ArrowPosition は有向グラフでのみ使用します。

ノードのプロパティ

すべて折りたたむ

ノードの色。'NodeColor' と、RGB 3 成分または色名で構成されるコンマ区切りのペアとして指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

    オプション説明等価の RGB 3 成分
    'red' または 'r'[1 0 0]
    'green' または 'g'[0 1 0]
    'blue' または 'b'[0 0 1]
    'yellow' または 'y'[1 1 0]
    'magenta' または 'm'マゼンタ[1 0 1]
    'cyan' または 'c'シアン[0 1 1]
    'white' または 'w'[1 1 1]
    'black' または 'k'[0 0 0]

例: plot(G,'NodeColor','k') は黒のノードをもつグラフ プロットを作成します。

ノード マーカー記号。'Marker' と、次の表に挙げる文字ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。既定では、グラフ ノードに円マーカーを使用します。

説明
'o'
'+'プラス記号
'*'アスタリスク
'.'
'x'十字
'square' または 's'正方形
'diamond' または 'd'菱形
'^'上向き三角形
'v'下向き三角形
'>'右向き三角形
'<'左向き三角形
'pentagram' または 'p'星形五角形
'hexagram' または 'h'星形六角形
'none'マーカーなし

例: '+'

例: 'diamond'

ノードのマーカー サイズ。'MarkerSize' と、ポイント単位の正の値で構成されるコンマ区切りのペアとして指定します。既定のマーカー サイズは、ノード数が 100 以下のグラフでは 4、ノード数が 100 を超えるグラフでは 2 です。

例: 10

ノードとエッジのラベル

すべて折りたたむ

ノード ラベルの色。RGB 3 成分または色名として指定します。

RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

オプション説明等価の RGB 3 成分
'red' または 'r'[1 0 0]
'green' または 'g'[0 1 0]
'blue' または 'b'[0 0 1]
'yellow' または 'y'[1 1 0]
'magenta' または 'm'マゼンタ[1 0 1]
'cyan' または 'c'シアン[0 1 1]
'white' または 'w'[1 1 1]
'black' または 'k'[0 0 0]

例: plot(G,'NodeLabel',C,'NodeLabelColor','m') は、マゼンタのノード ラベルをもつグラフ プロットを作成します。

エッジ ラベルの色。RGB 3 成分または色名として指定します。

RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、色の完全名および省略名のオプションと、等価の RGB 3 成分の値を示します。

オプション説明等価の RGB 3 成分
'red' または 'r'[1 0 0]
'green' または 'g'[0 1 0]
'blue' または 'b'[0 0 1]
'yellow' または 'y'[1 1 0]
'magenta' または 'm'マゼンタ[1 0 1]
'cyan' または 'c'シアン[0 1 1]
'white' または 'w'[1 1 1]
'black' または 'k'[0 0 0]

例: plot(G,'EdgeLabel',C,'EdgeLabelColor','m') は、マゼンタのエッジ ラベルをもつグラフ プロットを作成します。

フォント

すべて折りたたむ

ノード ラベルのフォント名。サポートされているフォント名または 'FixedWidth' として指定します。正しく表示および印刷するには、システムでサポートされているフォントを選択しなければなりません。既定のフォントは、特定のオペレーティング システムとロケールによって異なります。たとえば、英語版の Windows® および Linux® システムでは、既定で Helvetica フォントが使用されます。

どのロケールでもテキストが整って見える固定幅のフォントを使用するには、'FixedWidth' を指定します。

例: 'Cambria'

ノード ラベルのフォント サイズ。正の数値として指定します。

ノード ラベルのテキストの太さ。'normal' または 'bold' として指定します。

  • 'bold'標準よりも太い文字

  • 'normal' — 各フォントで定義されている標準の太さ

すべてのフォントに太字フォントがあるとは限りません。

データ型: cell | char | string

ノード ラベルのテキストの文字の傾斜。'normal' または 'italic' として指定します。

  • 'italic'"文字の傾斜あり"

  • 'normal' — 文字の傾斜なし

すべてのフォントに両方のフォント スタイルがあるとは限りません。

データ型: cell | char | string

エッジ ラベルのフォント名。サポートされているフォント名または 'FixedWidth' として指定します。正しく表示および印刷するには、システムでサポートされているフォントを選択しなければなりません。既定のフォントは、特定のオペレーティング システムとロケールによって異なります。たとえば、英語版の Windows および Linux システムでは、既定で Helvetica フォントが使用されます。

どのロケールでもテキストが整って見える固定幅のフォントを使用するには、'FixedWidth' を指定します。

例: 'Cambria'

エッジ ラベルのフォント サイズ。正の数値として指定します。

エッジ ラベルのテキストの太さ。'normal' または 'bold' として指定します。

  • 'bold'標準よりも太い文字

  • 'normal' — 各フォントで定義されている標準の太さ

すべてのフォントに太字フォントがあるとは限りません。

データ型: cell | char | string

エッジ ラベルのテキストの文字の傾斜。'normal' または 'italic' として指定します。

  • 'italic'"文字の傾斜あり"

  • 'normal' — 文字の傾斜なし

すべてのフォントに両方のフォント スタイルがあるとは限りません。

データ型: cell | char | string

R2015b で導入