Main Content

bubblelim

データ範囲へのバブル サイズのマッピング

R2020b 以降

    説明

    bubblelim(limits) は、現在の座標軸にバブルのサイズ範囲を設定します。[bmin bmax] の形式の 2 要素ベクトルとして範囲を指定します。ここで bmaxbmin より大きい値です。範囲を設定すると、座標軸の最小バブルは bmin に対応し、最大バブルは bmax に対応します。たとえば、bubblelim([10 50]) は最小バブルと最大バブルをそれぞれデータ値 1050 にマッピングします。

    lim = bubblelim は、現在の座標軸のバブルの範囲を 2 要素ベクトルとして返します。

    bubblelim(modevalue) は、範囲の設定について自動モードまたは手動モードを有効にします。プロットしたデータの範囲に合わせて MATLAB® で範囲が設定されるようにするには、modevalue'auto' として指定します。現在の値で範囲を保持するには 'manual' を指定します。

    mv = bubblelim('mode') は、現在のバブル範囲のモード値 'auto' または 'manual' を返します。範囲を指定するかモード値を 'manual' に設定しない場合、既定では、モード値は 'auto' になります。

    ___ = bubblelim(ax,___) は、現在の座標軸ではなく、指定された座標軸に範囲を設定します。前述のいずれかの構文で、他のすべての入力引数の前に ax を指定します。元の構文が出力引数をサポートしている場合は、出力引数を含めることができます。たとえば、lim = bubblelim(ax) は座標軸 ax の範囲を返します。

    すべて折りたたむ

    凡例付きのバブル チャートを作成します。

    x = 1:10;
    y = [4 7 10 7 3 6 5 1 9 7];
    sz = [5 1 14 6 9 12 15 20 8 2];
    bubblechart(x,y,sz);
    bubblelegend('Size Values','Location','northeastoutside')

    Figure contains an axes object and an object of type bubblelegend. The axes object contains an object of type bubblechart.

    既定では、最小バブルと最大バブルは sz ベクトルの最小値と最大値にそれぞれマッピングされます。関数 bubblelim を呼び出して、現在のバブル範囲を取得します。

    bubblelim
    ans = 1×2
    
         1    20
    
    

    範囲を [1 50] に変更します。その結果、チャートのバブルが小さくなり、バブル凡例のラベルが自動的に更新されます。

    bubblelim([1 50])

    Figure contains an axes object and an object of type bubblelegend. The axes object contains an object of type bubblechart.

    凡例付きのバブル チャートを作成します。

    x =  1:10;
    y =  [4 7 10 7 3 6 5 1 9 7];
    sz = [5 1 15 3 6 15 22 6 50 16];
    bubblechart(x,y,sz);
    bubblelegend('Size Values','Location','northeastoutside')

    Figure contains an axes object and an object of type bubblelegend. The axes object contains an object of type bubblechart.

    現在のバブル範囲を取得します。

    bubblelim
    ans = 1×2
    
         1    50
    
    

    範囲を [1 15] に変更します。その結果、いくつかのバブルは大きくなり、sz 値が 15 を超えるバブルは最大バブル サイズに縮小されます。バブル凡例のラベルは自動的に更新されます。

    bubblelim([1 15])

    Figure contains an axes object and an object of type bubblelegend. The axes object contains an object of type bubblechart.

    同じ座標軸内に複数のバブル チャートを作成すると、座標軸にバブル チャートを追加するたびに、バブル範囲が変更されます。バブル範囲は、すべてのチャートの sz 値に合わせて変更されます。プロット コマンド間で範囲を一定に保持するには、bubblelim('manual') コマンドを使用します。

    たとえば、120 の範囲の sz 値を使用してバブル チャートを作成します。

    x =  1:10;
    y1 =  [4 7 10 7 3 6 5 1 9 7];
    sz1 = [5 1 14 6 9 12 15 20 8 2];
    bubblechart(x,y1,sz1)
    hold on

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

    バブル範囲をクエリします。

    bubblelim
    ans = 1×2
    
         1    20
    
    

    bubblelim('manual') コマンドを使用して、バブル範囲を現在の値で保持します。sz 値の範囲が 150 のもう 1 つのバブル チャートを作成します。

    bubblelim('manual')
    y2 =  [10 7 2 3 8 9 2 1 3 4];
    sz2 = [5 1 14 6 9 12 15 50 8 2];
    bubblechart(x,y2,sz2);

    Figure contains an axes object. The axes object contains 2 objects of type bubblechart.

    バブル範囲をもう一度クエリして、範囲が変更されていないことを確認します。

    bubblelim
    ans = 1×2
    
         1    20
    
    

    特定の都市圏の東側と西側にある複数の都市における特定の毒素の汚染レベルを示す 2 組のデータ セットを定義します。towns1towns2 を都市における人口として定義します。nsites1nsites2 を対応する都市の産業用地の数として定義します。次に、levels1levels2 を都市の汚染レベルとして定義します。

    towns1 = randi([25000 500000],[1 30]);
    towns2 = towns1/3;
    nsites1 = randi(10,1,30);
    nsites2 = randi(10,1,30);
    levels1 = (5 * nsites2) + (7 * randn(1,30) + 20);
    levels2 = (3 * nsites1) + (7 * randn(1,30) + 20);

    タイル表示チャート レイアウトを作成して、データを左右に並べて可視化できます。次に、1 つ目のタイルに axes オブジェクトを作成し、都市の西側のデータをプロットします。タイトルと座標軸ラベルを追加します。次に、2 つ目のタイルでプロセスを繰り返して、東側のデータをプロットします。

    tiledlayout(1,2,'TileSpacing','compact')
    
    % West side
    ax1 = nexttile;
    bubblechart(ax1,nsites1,levels1,towns1);
    title('West Side')
    xlabel('Number of Industrial Sites')
    
    % East side
    ax2 = nexttile;
    bubblechart(ax2,nsites2,levels2,towns2);
    title('East Side')
    xlabel('Number of Industrial Sites')
    ylabel('Contamination Level')

    Figure contains 2 axes objects. Axes object 1 with title West Side, xlabel Number of Industrial Sites contains an object of type bubblechart. Axes object 2 with title East Side, xlabel Number of Industrial Sites, ylabel Contamination Level contains an object of type bubblechart.

    すべてのバブル サイズを小さくして、すべてのバブルが表示されるようにします。この場合、直径の範囲を 530 ポイントに変更します。

    bubblesize(ax1,[5 30])
    bubblesize(ax2,[5 30])

    Figure contains 2 axes objects. Axes object 1 with title West Side, xlabel Number of Industrial Sites contains an object of type bubblechart. Axes object 2 with title East Side, xlabel Number of Industrial Sites, ylabel Contamination Level contains an object of type bubblechart.

    西側の都市は東側の都市の 3 倍の大きさですが、前のチャートのバブルのサイズにはこの情報は反映されていません。これは、最小バブルと最大バブルが、各座標軸の最小データ点と最大データ点にマッピングされるためです。同じスケールにバブルを表示するには、都市の両側からの人口を含む alltowns という名前のベクトルを定義します。関数 bubblelim を使用して、両方のチャートのスケーリングをリセットします。次に、関数 xlimylim を使用して、同じ x 軸の範囲と y 軸の範囲をもつチャートを表示します。

    % Adjust scale of the bubbles
    alltowns = [towns1 towns2];
    newlims = [min(alltowns) max(alltowns)];
    bubblelim(ax1,newlims)
    bubblelim(ax2,newlims)
    
    % Adjust x-axis limits
    allx = [xlim(ax1) xlim(ax2)];
    xmin = min(allx);
    xmax = max(allx);
    xlim([ax1 ax2],[xmin xmax]);
    
    % Adjust y-axis limits
    ally = [ylim(ax1) ylim(ax2)];
    ymin = min(ally);
    ymax = max(ally);
    ylim([ax1 ax2],[ymin ymax]);

    Figure contains 2 axes objects. Axes object 1 with title West Side, xlabel Number of Industrial Sites contains an object of type bubblechart. Axes object 2 with title East Side, xlabel Number of Industrial Sites, ylabel Contamination Level contains an object of type bubblechart.

    入力引数

    すべて折りたたむ

    データ範囲。最初の要素が 2 番目の要素より小さい 2 要素ベクトルとして指定します。

    例: bubblelim([10 50]) は最小バブルと最大バブルをそれぞれデータ値 1050 にマッピングします。

    モード値。次の値のいずれかとして指定します。

    • 'auto' — MATLAB によってバブル範囲が決まります。範囲はプロットされたデータの範囲です。このオプションは、範囲を変更した後でそれを既定値に戻す場合に使用します。

    • 'manual' — 範囲は現在の値で維持されます。このオプションは、hold on コマンドで座標軸に新しいデータを追加する際に、現在の範囲を維持する場合に使用します。

    ターゲット座標軸。AxesPolarAxes、または GeographicAxes オブジェクトとして指定します。

    バージョン履歴

    R2020b で導入