Gráficos

De GNU Octave
Revisão em 16h37min de 12 de novembro de 2015 por Jgrocha (Discussão | contribs) (Outros tipos de gráfico)

Ir para: navegação, pesquisa

O Octave tem um conjunto de funções própria para visualizar gráficos. Estes gráficos são apresentados numa janela própria, e não na linha de comandos. COmo a janela dos gráficos tem um título pré-definido 'Figure', vamos chamar figura à janela onde aparecem os gráficos.

Primeiro gráfico

Sejam dois vetores ano e altura, com o mesmo comprimento. Para os representar graficamente, usa-se o comando plot.

altura = [0.8 1.02 1.12 1.20 1.35 1.40 1.42 1.52 1.60 1.66]
ano = 1:10
plot(ano, altura)

Plot alturas.png

No exemplo anterior, o comando plot usou o primeiro vetor ano para o eixo dos x e o segundo vetor altura para o eixo dos y.

Considere o seguinte vetor:

peso = [ 5    7    9   11   13   15   16   18   20   21]

Faça agora:

plot(ano, peso)

Plot peso.png

Continua a ter uma só figura, mas o novo gráfico sobrepos-se ao anterior. Ou seja, o comando plot, se já existir uma figura, a mesma é utilizada para apresentar o novo gráfico.

Para fechar a figura apresentada, faça:

close

Pode também fazê-lo usando o botão X na barra da janela.

Mais do que um gráfico na mesma figura

Sejam dois vetores x e y, com o mesmo comprimento. Para representar o mesmo graficamente, usa-se o comando plot, como se viu anteriormente.

x = 1:10
y = [ -2 -1.5 0.75 0.25 0.5 0.5 0.25 0.75 -1.5 -2]
plot(x,y)

O comando plot gerou uma nova figura, onde aparece o gráfico desejado, com os valores do primeiro vetor.

Depois de um comando plot, é sempre utilizada a mesma janela para apresentar o resultado. Exemplo:

Faça de novo:

plot(x,y)
z = rem(x,2)
plot(x,z)

Aconte que o gráfico anterior (resultante do plot(x,y)) é substituído pelo mais recente plot(x,z).

Se pretender ter mais do que uma figura aberta em simultâneo, antes de um novo plot, use o comando figure.

Faça:

close all
plot(x,y)
figure
plot(x,z)

Com os comandos anteriores, conseguiu gerar dois gráficos independentes. Com o comando hold, vamos sobrepor na mesma figura dois gráficos distintos, partilhando os mesmos eixos, cujos intervalos se ajustam à medida que se acrescentam gráficos.

Seja:

x = 0:0.1:2*pi;
y = sin(x)/2;
z = sin(x);

Para apresentar estes dois gráficos na mesma figura, fazemos:

close all
x = 0:0.1:2*pi;
y = sin(x)/2;
z = sin(x);
hold on
plot(x,y)
plot(x,z)
hold off

Alternativamente, pode usar um único comando plot:

plot(x, y, x, z)

Plot partilha dos eixos.png

Exercício
  1. Desenhe na mesma figura os gráficos do peso e da altura apresentados anteriormente, partilhando o mesmo eixo dos x.
    plot(ano, altura, ano, peso)

    Resultado

    Figure plot peso altura.png

  2. O comando plot (faça help plot) permite indicar a cor e o tipo de linha do gráfico. Apresente o gráfico anterior com a altura a vermelho e o peso a magenta.
    plot(ano, altura, 'r', ano, peso, 'm')

    Resultado

    Figure peso m altura r.png

  3. Com os comandos title e xlabel acrescente um título à figura e uma legenda no eixo dos x.
    title('Crescimento')
    xlabel('De 1 aos 10 anos')

    Resultado

    Figure altura peso com legendas.png

  4. Considere novamente o arquivo heartrate.m, disponível em http://octave.di.uminho.pt/images/files/ que tem a definição de um vetor chamado bpm. Descarregue o arquivo, e depois leia o vetor bpm. Faça o gráfico desse vetor.
    load heartrate.m
    plot(bpm)

    Resultado

    Figure bpm.png

Outros tipos de gráfico

Gráfico de barras

deputados = [ 107, 86, 19, 17, 1 ];
bar(deputados)
set(gca,'XTickLabel',{'PAF', 'PS', 'BE', 'PCP+PEV', 'PAN'})
Deputados barras.png

Gráfico de setores ou gráfico circular

partidos = [ "PAF"; "PS"; "BE"; "PCP-PEV"; "PAN"];
deputados = [ 107, 86, 19, 17, 1 ];
pie(deputados, cellstr(partidos));
Deputados pie.png

Apontadores adicionais