Gráficos

De GNU Octave
Revisão em 01h16min de 17 de novembro de 2015 por Jgrocha (Discussão | contribs) (Outros tipos de gráfico)

(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
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

Considere os dados oficiais das eleições legislativas de 2015.

Gráfico de barras

Construa um gráfico de barras com os resultados.

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

Gráfico de setores ou gráfico circular

Construa um gráfico de setores com os resultados.

partidos = {'PAF', 'PS', 'BE', 'PCP+PEV', 'PAN'}
deputados = [ 107, 86, 19, 17, 1 ];
pie(deputados, partidos);
Deputados pie.png

Apontadores adicionais