Main Content

animatedline

アニメーション化されたラインの作成

説明

an = animatedline は、データを含めずにアニメーション化されたラインを作成し、現在の座標軸に追加します。ループ内でラインに点を追加してアニメーションを作成するには、関数 addpoints を使用します。

an = animatedline(x,y) は、xy で定義されたデータ点を初期値としてアニメーション化されたラインを作成します。

an = animatedline(x,y,z) は、xyz で定義されたデータ点を初期値としてアニメーション化されたラインを作成します。

an = animatedline(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、アニメーション化されたラインのプロパティを指定します。たとえば 'Color','r' はラインの色を赤に設定します。このオプションは、前述の構文における任意の入力引数が組み合わされてから使用します。

an = animatedline(ax,___) は、現在の座標軸ではなく、ax で指定された座標軸にラインを作成します。前述のいずれかの構文で、他のすべての入力引数の前に ax を指定します。

すべて折りたたむ

初期状態の animated line オブジェクトを作成します。その後、ループを使用して、そのラインに点を 1,000 個追加します。新しい点を追加するたびに、drawnow を使用して新しい点を画面に表示します。

h = animatedline;
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

レンダリング速度を上げるには、ループごとに複数の点をラインに追加するか drawnow limitrate を使用します。

ラインの点をクエリします。

[xdata,ydata] = getpoints(h);

ラインの点をクリアします。

clearpoints(h)
drawnow

アニメーション化されたラインの色を赤に設定し、ライン幅を 3 ポイントに設定します。

x = [1 2];
y = [1 2];
h = animatedline(x,y,'Color','r','LineWidth',3);

Figure contains an axes object. The axes object contains an object of type animatedline.

datetime や duration の値など、数値以外の点をプロットするには、まずプロットする型の値でアニメーション化されたラインを初期化します。プロット内の最初の点か、NaTNaN などのプレースホルダーの値を指定できます。

たとえば、"x" 軸に datetime 値、"y" 軸に duration 値 (分) をプロットします。NaT 値と minutes(NaN) 値をもつアニメーション化されたラインを初期化します。次に、datetime ベクトル (x) と duration ベクトル (y) を作成し、それらのベクトルに含まれる点をアニメーション化されたラインに追加します。

an = animatedline(NaT,minutes(NaN),"Marker","o");
x = datetime(2018,5,1:5);
y = minutes([1 7 3 11 4]);
addpoints(an,x,y)

Figure contains an axes object. The axes object contains an object of type animatedline.

アニメーション化されたラインの点の数を 100 個までに制限します。ループを使用して一度に 1 つずつ点を追加します。ラインの点の数が 100 個に達した後は、ラインに新しい点を追加するたびに最も古い点が削除されます。

h = animatedline('MaximumNumPoints',100);
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

ループを使用して、アニメーション化されたラインに点を 100,000 個追加します。点の数が多いため、ループごとに点を 1 つずつ追加すると速度が遅くなる可能性があります。アニメーションの速度を上げるために、代わりに 1 回のループで点を 100 個追加します。

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:100:numpoints-99
    xvec = x(k:k+99);
    yvec = y(k:k+99);
    addpoints(h,xvec,yvec)
    drawnow
end

高速アニメーションを作成する別の方法では、drawnow の代わりに drawnow limitrate を使用します。

ループを使用して、アニメーション化されたラインに点を 100,000 個追加します。点の数が多いため、drawnow を使用して変更を表示すると時間がかかる可能性があります。アニメーションの速度を上げるために、代わりに drawnow limitrate を使用します。

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    drawnow limitrate
end

アニメーションのループを何回か繰り返してから更新内容をまとめて画面に描画します。この方法は、drawnow では遅すぎ、drawnow limitrate では速すぎる場合に使用します。

たとえば 1/30 秒ごとに画面を更新します。画面を更新する間隔は、tic コマンドと toc コマンドを使用して追跡します。

h = animatedline;
axis([0,4*pi,-1,1])
numpoints = 10000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
a = tic; % start timer
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    b = toc(a); % check timer
    if b > (1/30)
        drawnow % update screen every 1/30 seconds
        a = tic; % reset timer after updating
    end
end
drawnow % draw final frame

更新間隔が短いほど、画面が頻繁に更新されるためアニメーションの速度は遅くなります。たとえば、b > (1/1000) にするとアニメーションは遅くなります。

入力引数

すべて折りたたむ

開始 x 座標。y と同じサイズのスカラーまたはベクトルとして指定します。

極座標では、x は開始 theta 値に対応します。地理座標では、x は開始緯度 (度単位) に対応します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

開始 y 座標。x と同じサイズのスカラーまたはベクトルとして指定します。

極座標では、y は開始半径値に対応します。地理座標では、y は開始経度 (度単位) に対応します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

開始 z 座標。スカラーまたはベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

ターゲット座標軸。任意の座標軸タイプ、Group オブジェクト、または Transform オブジェクトとして指定します。この引数を指定しない場合、animatedline は現在の座標軸を使用します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: animatedline(x,y,Color="red",Marker="o") は、赤の円マーカーをもつアニメーション化されたラインを作成します。

R2021a より前: コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。たとえば、animatedline(x,y,"Color","red","Marker","o") は、赤の円マーカーをもつアニメーション化されたラインを作成します。

ここでは、アニメーション化されたラインのプロパティの一部だけを紹介しています。完全な一覧については、AnimatedLine のプロパティ を参照してください。

ラインの色。RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。既定値 [0 0 0] は、黒に相当します。

カスタム色を使用する場合は、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"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"該当なし該当なし該当なし色なし

MATLAB® の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。

ライン スタイル説明結果として得られる線
"-"実線

Sample of solid line

"--"破線

Sample of dashed line

":"点線

Sample of dotted line

"-."一点鎖線

Sample of dash-dotted line, with alternating dashes and dots

"none"ラインなしラインなし

ライン幅。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。ラインがマーカーをもつ場合、ライン幅はマーカー エッジにも影響します。

ライン幅をピクセルの幅より細くすることはできません。システムでライン幅をピクセルの幅より細い値に設定すると、ラインは 1 ピクセル幅で表示されます。

マーカー記号。次の表に挙げる値のいずれかとして指定します。既定では、オブジェクトはマーカーを表示しません。マーカー記号を指定すると、各データ点または各頂点にマーカーが追加されます。

マーカー説明結果のマーカー
"o"

Sample of circle marker

"+"プラス記号

Sample of plus sign marker

"*"アスタリスク

Sample of asterisk marker

"."

Sample of point marker

"x"十字

Sample of cross marker

"_"水平線

Sample of horizontal line marker

"|"垂直線

Sample of vertical line marker

"square"正方形

Sample of square marker

"diamond"菱形

Sample of diamond marker

"^"上向き三角形

Sample of upward-pointing triangle marker

"v"下向き三角形

Sample of downward-pointing triangle marker

">"右向き三角形

Sample of right-pointing triangle marker

"<"左向き三角形

Sample of left-pointing triangle marker

"pentagram"星形五角形

Sample of pentagram marker

"hexagram"星形六角形

Sample of hexagram marker

"none"マーカーなし該当なし

マーカー サイズ。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。

マーカーの輪郭の色。"auto"、RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。既定値 "auto" では、Color プロパティと同じ色が使用されます。

カスタム色を使用する場合は、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"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"該当なし該当なし該当なし色なし

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

マーカーの塗りつぶし色。"auto"、RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。"auto" オプションは親座標軸の Color プロパティと同じ色を使用します。"auto" を指定し、座標軸のプロット ボックスが非表示の場合、マーカーの塗りつぶし色は Figure の色です。

カスタム色を使用する場合は、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"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"該当なし該当なし該当なし色なし

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

ラインの一部として格納および表示される点の最大数。正の値または Inf として指定します。既定では 100 万個です。アニメーション化されたラインの点の数が許容される最大数を超えると、新たに追加された点が保持され、ラインの先頭から点が削除されていきます。これらの削除された点は画面に表示されなくなり、getpoints を使用しても返されません。

このプロパティは、画面に一度に表示される点の数を制限したりメモリの使用量を制限したりする場合に使用します。この値を Inf に指定すると、アニメーション化されたラインの点は削除されなくなりますが、格納される点の数は使用可能なメモリ量に制限されます。

例: 10

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

AnimatedLine オブジェクト。AnimatedLine オブジェクトの作成後に、プロパティ値の変更やラインへの点の追加などの変更を行うには an を使用します。プロパティの一覧については、AnimatedLine のプロパティ を参照してください。

制限

アニメーション化されたラインではデータ ヒントはサポートされません。

拡張機能

バージョン履歴

R2014b で導入

すべて展開する