plot
グラフのノードとエッジをプロット
説明
plot(___,
は、前述の構文にある任意の入力引数を組み合わせて、1 つ以上の名前と値のペアの引数で指定される追加のオプションを使用します。たとえば、Name,Value
)plot(G,'Layout','circle')
はグラフの環状レイアウトをプロットし、plot(G,'XData',X,'YData',Y,'ZData',Z)
はグラフ ノードの (X,Y,Z)
座標を指定します。
plot(
は、現在の座標軸 (ax
,___)gca
) の代わりに ax
によって指定される座標軸にプロットします。オプションの ax
は、前述の構文の任意の入力引数の組み合わせより前に指定できます。
例
グラフのプロット
スパース隣接行列を使用してグラフを作成し、そのグラフをプロットします。
n = 10; A = delsq(numgrid('L',n+2)); G = graph(A,'omitselfloops')
G = graph with properties: Edges: [130x2 table] Nodes: [75x0 table]
plot(G)
ライン識別子を使用してグラフをプロット
グラフを作成してプロットします。LineSpec
入力を指定して、グラフ プロットの Marker
、NodeColor
、LineStyle
のすべてまたは一部を変更します。
G = graph(bucky); plot(G,'-.dr','NodeLabel',{})
レイアウトを指定してグラフをプロット
有向グラフを作成し、'force'
レイアウトを使用してそのグラフをプロットします。
G = digraph(1,2:5); G = addedge(G,2,6:15); G = addedge(G,15,16:20)
G = digraph with properties: Edges: [19x1 table] Nodes: [20x0 table]
plot(G,'Layout','force')
グラフのカスタム ノード座標
重み付きグラフを作成します。
s = [1 1 1 1 1 2 2 7 7 9 3 3 1 4 10 8 4 5 6 8]; t = [2 3 4 5 7 6 7 5 9 6 6 10 10 10 11 11 8 8 11 9]; weights = [1 1 1 1 3 3 2 4 1 6 2 8 8 9 3 2 10 12 15 16]; G = graph(s,t,weights)
G = graph with properties: Edges: [20x2 table] Nodes: [11x0 table]
カスタム ノード座標を使用して、グラフをプロットします。XData
で x 座標、YData
で y 座標、ZData
で z 座標を指定します。EdgeLabel
を使用して、エッジにその重みのラベルを付けます。
x = [0 0.5 -0.5 -0.5 0.5 0 1.5 0 2 -1.5 -2]; y = [0 0.5 0.5 -0.5 -0.5 2 0 -2 0 0 0]; z = [5 3 3 3 3 0 1 0 0 1 0]; plot(G,'XData',x,'YData',y,'ZData',z,'EdgeLabel',G.Edges.Weight)
上方からグラフを表示します。
view(2)
エッジの重みに比例するエッジのライン幅
重み付きグラフを作成します。
s = [1 1 1 1 2 2 3 4 4 5 6]; t = [2 3 4 5 3 6 6 5 7 7 7]; weights = [50 10 20 80 90 90 30 20 100 40 60]; G = graph(s,t,weights)
G = graph with properties: Edges: [11x2 table] Nodes: [7x0 table]
グラフをプロットし、エッジにその重みのラベルを付け、エッジの幅を重みに比例させます。再スケーリングしたバージョンのエッジの重みを使用して、最も広いライン幅が 5 になるように各エッジのライン幅を決定します。
LWidths = 5*G.Edges.Weight/max(G.Edges.Weight); plot(G,'EdgeLabel',G.Edges.Weight,'LineWidth',LWidths)
グラフのノードとエッジにラベルを付ける
有向グラフを作成します。ノードとエッジのカスタム ラベルを使用してグラフをプロットします。
s = [1 1 1 2 2 3 3 4 4 5 6 7]; t = [2 3 4 5 6 5 7 6 7 8 8 8]; G = digraph(s,t)
G = digraph with properties: Edges: [12x1 table] Nodes: [8x0 table]
eLabels = {'x' 'y' 'z' 'y' 'z' 'x' 'z' 'x' 'y' 'z' 'y' 'x'}; nLabels = {'{0}','{x}','{y}','{z}','{x,y}','{x,z}','{y,z}','{x,y,z}'}; plot(G,'Layout','force','EdgeLabel',eLabels,'NodeLabel',nLabels)
GraphPlot のプロパティの調整
有向グラフを作成してプロットします。plot
に、GraphPlot
オブジェクトのハンドルを返す出力引数を指定します。
s = [1 1 1 2 2 3 3 4 5 5 6 7 7 8 8 9 10 11]; t = [2 3 10 4 12 4 5 6 6 7 9 8 10 9 11 12 11 12]; G = digraph(s,t)
G = digraph with properties: Edges: [18x1 table] Nodes: [12x0 table]
p = plot(G)
p = 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' '12'} EdgeLabel: {} XData: [2.5000 1.5000 2.5000 2 3 2 3 3 2.5000 4 3.5000 2.5000] YData: [7 6 6 5 5 4 4 3 2 3 2 1] ZData: [0 0 0 0 0 0 0 0 0 0 0 0] Use GET to show all properties
ノードの色とマーカーを変更します。
p.Marker = 's'; p.NodeColor = 'r';
ノードのサイズを増加します。
p.MarkerSize = 7;
エッジのライン スタイルを変更します。
p.LineStyle = '--';
ノードの x 座標と y 座標を変更します。
p.XData = [2 4 1.5 3.5 1 3 1 2.1 3 2 3.1 4]; p.YData = [3 3 3.5 3.5 4 4 2 2 2 1 1 1];
入力引数
LineSpec
— ライン スタイル、マーカー記号および色
文字ベクトル | string ベクトル
ライン スタイル、マーカー記号および色。記号の文字ベクトルまたは string ベクトルとして指定します。記号は任意の順序で指定でき、1 つ以上の特性を省略できます。ライン スタイルを省略した場合、プロットではグラフ エッジが実線で表示されます。
例: '--or'
は、ノードに赤の円マーカー、エッジに赤の破線を使用します。
例: 'r*'
は、ノードに赤のアスタリスクのマーカー、エッジに赤の実線を使用します。
ライン スタイル | 説明 | 結果として得られる線 |
---|---|---|
"-" | 実線 |
|
"--" | 破線 |
|
":" | 点線 |
|
"-." | 一点鎖線 |
|
マーカー | 説明 | 結果のマーカー |
---|---|---|
"o" | 円 |
|
"+" | プラス記号 |
|
"*" | アスタリスク |
|
"." | 点 |
|
"x" | 十字 |
|
"_" | 水平線 |
|
"|" | 垂直線 |
|
"square" | 正方形 |
|
"diamond" | 菱形 |
|
"^" | 上向き三角形 |
|
"v" | 下向き三角形 |
|
">" | 右向き三角形 |
|
"<" | 左向き三角形 |
|
"pentagram" | 星形五角形 |
|
"hexagram" | 星形六角形 |
|
色名 | 省略名 | RGB 3 成分 | 外観 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
ax
— axes オブジェクト
オブジェクト
axes オブジェクト。axes オブジェクトを指定しない場合、plot
は現在の座標軸 (gca
) を使用します。
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: p = plot(G,'EdgeColor','r','NodeColor','k','LineStyle','--')
ここでは、グラフのプロパティの一部のみを示します。完全な一覧については、GraphPlot のプロパティ を参照してください。
ArrowSize
— 矢印のサイズ
正の値
メモ
ArrowSize
は、digraph
を使用して作成された有向グラフの表示にのみ影響します。
矢印のサイズ。'ArrowSize'
と、ポイント単位の正の値で構成されるコンマ区切りのペアとして指定します。ArrowSize
の既定値は、ノード数が 100 以下のグラフでは 7
、ノード数が 100 を超えるグラフでは 4
です。
例: 15
EdgeCData
— エッジ ラインの色データ
ベクトル
エッジ ラインの色データ。'EdgeCData'
と、グラフ内のエッジ数に等しい長さをもつベクトルで構成されるコンマ区切りのペアとして指定します。EdgeCData
の値は現在のカラーマップの色に線形にマッピングされ、その結果、プロットしたグラフの各エッジが異なる色になります。
EdgeColor
— エッジの色
[0 0.4470 0.7410]
(既定値) | RGB 3 成分 | 16 進数カラー コード | 色名 | 行列 | 'flat'
| 'none'
エッジの色。'EdgeColor'
と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。
'none'
— エッジは描画されません。'flat'
— 各エッジの色はEdgeCData
の値によって決まります。行列 — 各行はそれぞれ 1 つのエッジの色を表す RGB 3 成分です。この行列のサイズは
numedges(G)
行3
列です。RGB 3 成分、16 進数カラー コードまたは色名 — 指定した色がエッジで使用されます。
RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は
[0,1]
の範囲でなければなりません。たとえば[0.4 0.6 0.7]
のようになります。16 進数カラー コードは、ハッシュ記号 (
#
) で始まり、3 桁または 6 桁の0
からF
までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード"#FF8800"
、"#ff8800"
、"#F80"
、および"#f80"
は等価です。
あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。
色名 省略名 RGB 3 成分 16 進数カラー コード 外観 "red"
"r"
[1 0 0]
"#FF0000"
"green"
"g"
[0 1 0]
"#00FF00"
"blue"
"b"
[0 0 1]
"#0000FF"
"cyan"
"c"
[0 1 1]
"#00FFFF"
"magenta"
"m"
[1 0 1]
"#FF00FF"
"yellow"
"y"
[1 1 0]
"#FFFF00"
"black"
"k"
[0 0 0]
"#000000"
"white"
"w"
[1 1 1]
"#FFFFFF"
MATLAB® の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。
RGB 3 成分 16 進数カラー コード 外観 [0 0.4470 0.7410]
"#0072BD"
[0.8500 0.3250 0.0980]
"#D95319"
[0.9290 0.6940 0.1250]
"#EDB120"
[0.4940 0.1840 0.5560]
"#7E2F8E"
[0.4660 0.6740 0.1880]
"#77AC30"
[0.3010 0.7450 0.9330]
"#4DBEEE"
[0.6350 0.0780 0.1840]
"#A2142F"
例: plot(G,'EdgeColor','r')
は赤のエッジをもつグラフ プロットを作成します。
EdgeLabel
— エッジのラベル
{}
(既定値) | ベクトル | 文字ベクトルの cell 配列 | string 配列
エッジのラベル。'EdgeLabel'
と、数値ベクトル、文字ベクトルの cell 配列、string 配列のいずれかで構成されるコンマ区切りのペアとして指定します。EdgeLabel
の長さはグラフのエッジ数と等しくなければなりません。既定では、EdgeLabel
は空の cell 配列です (エッジのラベルは表示されない)。
例: {'A', 'B', 'C'}
例: [1 2 3]
例: plot(G,'EdgeLabel',G.Edges.Weight)
はグラフ エッジにその重みのラベルを付けます。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| cell
| string
Layout
— グラフのレイアウト メソッド
'auto'
(既定値) | 'circle'
| 'force'
| 'layered'
| 'subspace'
| 'force3'
| 'subspace3'
グラフのレイアウト メソッド。'Layout'
と、次の表のいずれかのオプションで構成されるコンマ区切りのペアとして指定します。この表には、各レイアウト メソッドをさらに調整するために使用できる名前と値のペアも示します。レイアウト固有の名前と値のペアの詳細については、layout
のリファレンス ページを参照してください。
オプション | 説明 | レイアウト固有の名前と値のペア |
---|---|---|
'auto' (既定) | グラフのサイズと構造に基づいた、レイアウト メソッドの自動選択。 | — |
'circle' | 円形レイアウト。中心が原点、半径が 1 の円上にグラフ ノードを配置します。 |
|
'force' | 力指向レイアウト[1]。隣接ノード間に引力、離れたノード間に反発力を使用します。 |
|
'layered' | ノードの階層型レイアウト [2]、[3]、[4]。グラフ ノードを一連の層に配置し、階層構造を表します。既定では、階層は下に進みます (有向非循環グラフの矢印が下を向く)。 |
|
'subspace' | ノードの部分空間埋め込みレイアウト[5]。グラフ ノードを高次の埋め込み部分空間にプロットし、その位置を 2 次元に投影します。既定では、部分空間の次元は 100 とノードの合計値のうち小さい値になります。 |
|
'force3' | 3 次元力指向レイアウト。 |
|
'subspace3' | 3 次元部分空間を埋め込んだレイアウト。 |
|
例: plot(G,'Layout','force3','Iterations',10)
例: plot(G,'Layout','subspace','Dimension',50)
例: plot(G,'Layout','layered')
LineStyle
— ライン スタイル
'-'
(既定値) | '--'
| ':'
| '-.'
| 'none'
| cell 配列 | string ベクトル
ライン スタイル。'LineStyle'
と次の表のライン スタイルのいずれかで構成されるコンマ区切りのペア、またはそのような値の cell 配列または string ベクトルとして指定します。エッジごとに異なるライン スタイルを使用するには、文字ベクトルの cell 配列または string ベクトルを指定します。
文字 | ライン スタイル | 結果として得られる線 |
---|---|---|
'-' | 実線 |
|
'--' | 破線 |
|
':' | 点線 |
|
'-.' | 一点鎖線 |
|
'none' | ラインなし | ラインなし |
LineWidth
— エッジのライン幅
0.5
(既定値) | 正の値 | ベクトル
エッジのライン幅。'LineWidth'
とポイント単位の正の値で構成されるコンマ区切りのペア、またはそのような値のベクトルとして指定します。グラフのエッジごとに異なるライン幅を使用するには、ベクトルを指定します。
例: 0.75
Marker
— ノード マーカー記号
'o'
(既定値) | 文字ベクトル | cell 配列 | string ベクトル
ノード マーカー記号。'Marker'
と次の表の文字ベクトルのいずれかで構成されるコンマ区切りのペア、またはそのような値の cell 配列または string ベクトルとして指定します。既定では、グラフ ノードに円マーカーを使用します。ノードごとに異なるマーカーを使用するには、文字ベクトルの cell 配列、または string ベクトルを指定します。
マーカー | 説明 | 結果のマーカー |
---|---|---|
"o" | 円 |
|
"+" | プラス記号 |
|
"*" | アスタリスク |
|
"." | 点 |
|
"x" | 十字 |
|
"_" | 水平線 |
|
"|" | 垂直線 |
|
"square" | 正方形 |
|
"diamond" | 菱形 |
|
"^" | 上向き三角形 |
|
"v" | 下向き三角形 |
|
">" | 右向き三角形 |
|
"<" | 左向き三角形 |
|
"pentagram" | 星形五角形 |
|
"hexagram" | 星形六角形 |
|
"none" | マーカーなし | 該当なし |
例: '+'
例: 'diamond'
MarkerSize
— ノードのマーカー サイズ
正の値 | ベクトル
ノードのマーカー サイズ。'MarkerSize'
とポイント単位の正の値で構成されるコンマ区切りのペア、またはそのような値のベクトルとして指定します。グラフのノードごとに異なるマーカー サイズを使用するには、ベクトルを指定します。MarkerSize
の既定値は、ノード数が 100 以下のグラフでは 4、ノード数が 100 を超えるグラフでは 2
です。
例: 10
NodeCData
— ノード マーカーの色データ
ベクトル
ノード マーカーの色データ。'NodeCData'
と、グラフ内のノード数に等しい長さをもつベクトルで構成されるコンマ区切りのペアとして指定します。NodeCData
の値は現在のカラーマップの色に線形にマッピングされ、その結果、プロットしたグラフの各ノードが異なる色になります。
NodeColor
— ノードの色
[0 0.4470 0.7410]
(既定値) | RGB 3 成分 | 16 進数カラー コード | 色名 | 行列 | 'flat'
| 'none'
ノードの色。'NodeColor'
と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。
'none'
— ノードは描画されません。'flat'
— 各ノードの色はNodeCData
の値によって決まります。行列 — 各行はそれぞれ 1 つのノードの色を表す RGB 3 成分です。この行列のサイズは
numnodes(G)
行3
列です。RGB 3 成分、16 進数カラー コードまたは色名 — 指定した色がノードで使用されます。
RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。
RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は
[0,1]
の範囲でなければなりません。たとえば[0.4 0.6 0.7]
のようになります。16 進数カラー コードは、ハッシュ記号 (
#
) で始まり、3 桁または 6 桁の0
からF
までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード"#FF8800"
、"#ff8800"
、"#F80"
、および"#f80"
は等価です。
あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。
色名 省略名 RGB 3 成分 16 進数カラー コード 外観 "red"
"r"
[1 0 0]
"#FF0000"
"green"
"g"
[0 1 0]
"#00FF00"
"blue"
"b"
[0 0 1]
"#0000FF"
"cyan"
"c"
[0 1 1]
"#00FFFF"
"magenta"
"m"
[1 0 1]
"#FF00FF"
"yellow"
"y"
[1 1 0]
"#FFFF00"
"black"
"k"
[0 0 0]
"#000000"
"white"
"w"
[1 1 1]
"#FFFFFF"
MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。
RGB 3 成分 16 進数カラー コード 外観 [0 0.4470 0.7410]
"#0072BD"
[0.8500 0.3250 0.0980]
"#D95319"
[0.9290 0.6940 0.1250]
"#EDB120"
[0.4940 0.1840 0.5560]
"#7E2F8E"
[0.4660 0.6740 0.1880]
"#77AC30"
[0.3010 0.7450 0.9330]
"#4DBEEE"
[0.6350 0.0780 0.1840]
"#A2142F"
例: plot(G,'NodeColor','k')
は黒のノードをもつグラフ プロットを作成します。
NodeLabel
— ノードのラベル
ノード ID (既定値) | ベクトル | 文字ベクトルの cell 配列 | string 配列
ノードのラベル。'NodeLabel'
と、数値ベクトル、文字ベクトルの cell 配列、string 配列のいずれかで構成されるコンマ区切りのペアとして指定します。NodeLabel
の長さはグラフのノード数と等しくなければなりません。既定では、NodeLabel
はグラフ ノードのノード ID を含む cell 配列です。
ノードに名前がない場合 (つまり
G.Nodes
に変数Name
が含まれない)、ノードのラベルは cell 配列に含まれる値unique(G.Edges.EndNodes)
になります。名前付きノードの場合、ノードのラベルは
G.Nodes.Name'
になります。
例: {'A', 'B', 'C'}
例: [1 2 3]
例: plot(G,'NodeLabel',G.Nodes.Name)
はノードにその名前のラベルを付けます。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| cell
| string
XData
— ノードの x 座標
ベクトル
メモ
XData
と YData
は、各ノードが有効な (x,y) 座標をもつように共に指定しなければなりません。オプションで、3 次元座標の ZData
も指定できます。
ノードの x 座標。'XData'
と、グラフ内のノード数に等しい長さをもつベクトルで構成されるコンマ区切りのペアとして指定します。
YData
— ノードの y 座標
ベクトル
メモ
XData
と YData
は、各ノードが有効な (x,y) 座標をもつように共に指定しなければなりません。オプションで、3 次元座標の ZData
も指定できます。
ノードの y 座標。'YData'
と、グラフ内のノード数に等しい長さをもつベクトルで構成されるコンマ区切りのペアとして指定します。
ZData
— ノードの z 座標
ベクトル
メモ
XData
と YData
は、各ノードが有効な (x,y) 座標をもつように共に指定しなければなりません。オプションで、3 次元座標の ZData
も指定できます。
ノードの z 座標。'ZData'
と、グラフ内のノード数に等しい長さをもつベクトルで構成されるコンマ区切りのペアとして指定します。
参照
[1] Fruchterman, T., and E. Reingold. “Graph Drawing by Force-directed Placement.” Software — Practice & Experience. Vol. 21 (11), 1991, pp. 1129–1164.
[2] Gansner, E., E. Koutsofios, S. North, and K.-P Vo. “A Technique for Drawing Directed Graphs.” IEEE Transactions on Software Engineering. Vol.19, 1993, pp. 214–230.
[3] Barth, W., M. Juenger, and P. Mutzel. “Simple and Efficient Bilayer Cross Counting.” Journal of Graph Algorithms and Applications. Vol.8 (2), 2004, pp. 179–194.
[4] Brandes, U., and B. Koepf. “Fast and Simple Horizontal Coordinate Assignment.” LNCS. Vol. 2265, 2002, pp. 31–44.
[5] Y. Koren. “Drawing Graphs by Eigenvectors: Theory and Practice.” Computers and Mathematics with Applications. Vol. 49, 2005, pp. 1867–1888.
バージョン履歴
R2015b で導入R2018a: 自己ループ表示の変更
単純グラフのプロットにある自己ループが、葉あるいは涙のような形になりました。従来のリリースでは、自己ループが円で表示されました。
参考
関数
オブジェクト
プロパティ
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)