MATLAB Note/グラフ
Last-modified: 2010-07-17 (土) 03:35:00
Top / MATLAB Note / グラフ
- 目次
2次元グラフ †
- 以下の配列A*1を使って説明します。
>> A = [16 3 2 13 5 10 11 8; 9 6 7 12 4 15 14 1] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
- プロット1
>> plot(A)
- プロット2
>> plot(A')
- プロット3
>> plot(A(1,:),A(2,:),'o')
- プロット3-1 以下の配列Bといっしょにプロット
>> B = [1 14 15 4 12 7 6 9; 16 3 2 13 5 10 11 8] B = 1 14 15 4 12 7 6 9 16 3 2 13 5 10 11 8 >> h = plot(A(1,:),A(2,:),'o',B(1,:),B(2,:),'.'); >> legend(h, 'A', 'B');
色を指定する †
3次元グラフ †
- 以下の配列A,B,Cを使って説明します。
>> A = [1 2 3; 1 2 3; 1 2 3] A = 1 2 3 1 2 3 1 2 3 >> B = [1 1 1; 2 2 2; 3 3 3] B = 1 1 1 2 2 2 3 3 3 >> C = [0 0 0; 1 1 1; 0 0 0] C = 0 0 0 1 1 1 0 0 0
- 3次元サーフェスでプロット
set(gcf,'position',[230 259 560 420]); surf(A,B,C,'FaceColor','interp','EdgeColor','none'); xlabel('A'), ylabel('B'), zlabel('C'), title('3D-plot'); axis tight; camlight left;
ヒストグラム †
- 1次元データの分析
- 関数HISTを使います。以下はヘルプから転載です。
- N = HIST(Y) は、10 個の等間隔のコンテナに Y の要素を分類し、各コンテナの要素数を出力します。Y が行列の場合、HIST は列に対して機能します。N = HIST(Y,M) は、M がスカラの場合、M 個のビンを使います。
- 例えば、
>> A = [1 1 2 3 5 6 7 8 9]
これを1~3, 4~6, 7~9のヒストグラムにしたいとき、>> N = hist(A,3) %変数Aの中身をM個のビンで分ける N = 4 2 3
1~3に4個、4~6に2個、7~9に3個の値があることを示しています。 また、>> hist(A,3)
とすることで、ヒストグラムをプロットします。
- 2次元データの分析
- 平均値の異なる2つの2次元正規分布の値をプロットして、3次元ヒストグラムで表示する
%平均値の異なる2つの2次元正規分布の値をプロット A = randn(1000,1000) + 4; B = randn(1000,1000) + 6; plot(A(1,:),A(2,:),'.',B(1,:),B(2,:),'x'); legend('A', 'B'); data = [A ; B]; %全データをまとめる %3次元ヒストグラムを作成 % 分析するセルの範囲を定義 xl = 0.5; maxX = 10; %x軸のセルの幅は0.5、最大値は10 yl = 0.5; maxY = 10; %y軸のセルの幅は0.5、最大値は10 % 各セルの中に値が何個入っているかを調べる frequency = zeros( (maxX/xl)+1, (maxY/yl)+1 ); labelX = zeros((maxX/xl)+1, 1); labelY = zeros((maxY/yl)+1, 1); countY = 0; countX = 0; for i2 = 0:yl:(maxY-1) %FOR文 0~(maxY-1)までylおきに処理 countY = countY + 1; for i1 = 0:xl:maxX %FOR文 0~maxXまでxlおきに処理 countX = countX + 1; hitData = find( (data(:,1)>(i1)) & (data(:,1)<=(i1+xl)) & ... (data(:,2)>(i2)) & (data(:,2)<=(i2+yl)) ); hitDataSize = size(hitData); frequency(countX, countY) = hitDataSize(1); labelX(countX) = i1; %座標ラベル end labelY(countY) = i2; %座標ラベル countX = 0; end % 3次元サーフェスでヒストグラムをプロット figure(2), set(gcf,'position',[230 259 560 420]) surf(labelY, labelX, frequency, ... 'FaceColor', 'interp', 'EdgeColor', 'none', 'FaceLighting', 'phong'); xlabel('A'); ylabel('B'); zlabel('頻度 (回)'); title('頻度分布'); axis tight; camlight left;
- 実行結果は以下のようになります。
- 平均値の異なる2つの2次元正規分布の値をプロットして、3次元ヒストグラムで表示する
- その他
- HISTFIT 正規確率密度を重ね合わせたヒストグラム 参考
RGB値を指定したプロット †
添付ファイル: colorplot_2.png 2956件 [詳細] colorplot_2.m 2883件 [詳細] colorplot_1.png 2942件 [詳細] colorplot_1.m 3174件 [詳細] matlab_graph02.png 2880件 [詳細] matlab_graph01.png 2838件 [詳細]