2016-07-30 22 views
1

私はMATLABでテーブルを読んでいます:プロットMATLABのテーブルと凡例を生成

R = readtable('Recalls_All.csv','Delimiter',',','ReadVariableNames',false,... 
'ReadRowNames',false); 
    R.Properties.VariableNames = {'Features','R1','R5','R10','R20'}; 

この行列の最初の列は、異なるアルゴリズムおよび他の4 'に対応する文字列のデータ・タイプであります列は数値です。ループを使用せずにをどうすればいいですか?、行を列の関数としてプロットします。

  • X_AXIS:
  • y軸カラム:

は明らかplottting異なるアルゴリズムに対応readtable()を使用して困難な作業ではありません。しかし、180行あるので、プロット(アルゴリズム)ごとに自動的にlegend()を作成したいと思います。

素晴らしいアイデアがあります。ここで

+0

変数名がセルとして格納されていませんか?あなたは伝説アフリカとして使うことができます。 – Adriaan

+0

変数の名前は5つだけです。問題はrownamesであり、それらは凡例を作成したいものです。 –

+0

はい、そうです。アルゴリズム名。彼らはどこかの細胞として保存されていませんか? – Adriaan

答えて

1
>> A = [1:5] .* [1:10]' % example matrix 
A = 

    1 2 3 4 5 
    2 4 6 8 10 
    3 6 9 12 15 
    4 8 12 16 20 
    5 10 15 20 25 
    6 12 18 24 30 
    7 14 21 28 35 
    8 16 24 32 40 
    9 18 27 36 45 
    10 20 30 40 50 

>> VariableNames = {'name1', 'name2','name3','name4','name5'}; 
>> plot(1:size(A,1), A') 
>> legend (VariableNames{:}) 

enter image description here

1

それをすべて行うためのオプションです:

% some arbitrary data: 
R = table({'algorithm1' 'algorithm2' 'algorithm3'}.',randi(100,3,1),... 
    randi(100,3,1),randi(100,3,1),randi(100,3,1),... 
    'VariableNames',{'Features','R1','R5','R10','R20'}); 
ax = axes; % create axes 
plot(ax,table2array(R(:,2:end)).'); % plot data 
ax.XTick = 1:width(R); % limit X-axis ticks no. to columns 
ax.XTickLabel = R.Properties.VariableNames(2:end); % get columns names 
legend(table2cell(R(:,1))); % get algorithm names 

と結果:

Plotting a table

とコースを外れ、あなたのようにプロットを微調整することができますあなたが欲しい(行、マーカー、限界など..)

関連する問題