如何在数据集中使用matlab制作图表?

时间:2013-05-07 03:28:43

标签: matlab

您可以忽略程序的前几个部分,因为这只是一个设置,您可以转到它为您提供第一选择的部分。所以我想做的就是制作一个有关FIFA球队的条形图以及他们拥有的积分数量。数据集是50x9矩阵。我试图让它绘制第4列的所有行(这是点的数量)。但是我一直遇到错误。我从未做过条形图,所以我不知道这是如何工作的。我感谢你们给我的任何意见。

fprintf('*loading dataset...\n');
fprintf('*analyzing dataset...\n');
data=dataset('File', 'thegrid2.txt', 'Delimiter', ',');
[rows cols] = size(data);

choice= menu('What would you like to see master?:', 'Graph 1', 'Graph 2', 'Graph 3', 'OR Graph 4')

if choice== 1
    x= 1:1:50;
    y= data(1:rows, cols-5);
    bar(x,y)
    title([ 'Countries vs. the amount of points: '])
    set(gca, 'Xtick', 1:1:50);
    set(gca,'XTickLabel', {'ESP','GER','ARG','CRO','POR','COL','ENG','ITA','NED','ECU','RUS','CIV','GRE','MEX','SUI','BEL','URU','FRA','BRA','DEN','BIH','GHA','CHI','SWE','CZE','MLI','MNE','USA','JPN','NOR','NGA','PER','HUN','ROU','ALG','VEN','UKR','PAN','IRL','SRB','TUN','KOR','PAR','TUR','ZAM','AUS','CRC','ALB','WAL','BFA'});
end

1 个答案:

答案 0 :(得分:1)

如果要绘制50个(!)标签,首先我使用barh而非bar进行绘图。 其次,如果您只需要绘制第4列,请使用y= data(:,4);。例如:

data=rand(50,5);
x= 1:1:50;
y= data(:,4);
barh(x,y)
title([ 'Countries vs. the amount of points: '])
set(gca, 'Ytick', 1:1:50);
set(gca,'YTickLabel', {'ESP','GER','ARG','CRO','POR','COL','ENG','ITA','NED','ECU','RUS','CIV','GRE','MEX','SUI','BEL','URU','FRA','BRA','DEN','BIH','GHA','CHI','SWE','CZE','MLI','MNE','USA','JPN','NOR','NGA','PER','HUN','ROU','ALG','VEN','UKR','PAN','IRL','SRB','TUN','KOR','PAR','TUR','ZAM','AUS','CRC','ALB','WAL','BFA'});
ylim([0 51])

enter image description here