CalcNum05 - Básico de MatPlotLib

72
Básico de MatPlotLib Prof. Paulo R. G. Bordoni UFRJ

Transcript of CalcNum05 - Básico de MatPlotLib

Page 1: CalcNum05 - Básico de MatPlotLib

Básico de MatPlotLib Prof. Paulo R. G. Bordoni

UFRJ

Page 2: CalcNum05 - Básico de MatPlotLib

Vou começar pelo dito popular:

“Uma imagem vale mais que mil palavras.”

“A criação de Adão”

Afresco pintado no teto da Capela Sistina por Michelangelo

Buonarroti, entorno de 1511.

Page 3: CalcNum05 - Básico de MatPlotLib

1637 René Descartes - Francês

Nasceu 31/03/1596 Morreu 11/02/1650

A formalização do método científico, um

quarto de século depois...

Page 4: CalcNum05 - Básico de MatPlotLib
Page 5: CalcNum05 - Básico de MatPlotLib

Reducionismo: estudo do mundo como uma

montagem de partes físicas que podem ser divididas e analisadas separadamente e recompostas.

Page 6: CalcNum05 - Básico de MatPlotLib

Uma imagem vale muito mais que mil palavras ...

Escher remontou tudo, harmonicamente, certamente, questionando o Reducionismo.

M.C. Escher, Relativity (1953),

Litogravura

Page 7: CalcNum05 - Básico de MatPlotLib

Escher remontou tudo, harmonicamente, quem sabe para

mostrar que

“o todo pode ser maior que a soma das partes”. Holismo ...

Page 8: CalcNum05 - Básico de MatPlotLib

Douglas R. Hofstadter nos conduz por uma viagem maravilhosa sobre todas essas

coisas ...

Leia você também!

Page 9: CalcNum05 - Básico de MatPlotLib

M.C. Escher, Convex and Concave (1955), Litogravura

Experimente olhar assim ↘, pelo canto esquerdo superior.

Depois, olhe assim ↖, pela escada, lá no canto direito inferior!

O que você vê depende do seu modo

de olhar, do seu ponto de vista!

Olhar o todo pode permitir detectar

contradições.

Page 10: CalcNum05 - Básico de MatPlotLib

Comece olhando pelo balcão superior. Depois desça ao

pátio pela corda.

Em seguida, suba pela escada.

Ilusão induzida pelo claro/escuro .

http://www2.uol.com.br/vivermente/multimidia/galeria_de_ilusoes.html

Page 11: CalcNum05 - Básico de MatPlotLib

Pois é, são armadilhas de percepção.

Esta revista mostra algumas. Escher, desenhou muitas outras.

Elas envolvem o famoso “tribar” de Sir Roger Penrose.

Page 12: CalcNum05 - Básico de MatPlotLib

M.C. Escher, Waterfall (1961), Litogravura

Descubram os tribar!

E as torres: mesma altura mas quantos

andares?

Page 13: CalcNum05 - Básico de MatPlotLib

M.C. Escher, Belvedere (1958), Litogravura

Descubram os tribar.

O quê o homem sentado no banco

segura?

Page 14: CalcNum05 - Básico de MatPlotLib

Este é o artista e genial que construiu as litogravuras que

mostramos.

Procure na internet para ver muito mais!

Mauritius Cornelius Escher, holandês.

Nasceu em 17/06/1898 Morreu em 27/03/1972

Page 15: CalcNum05 - Básico de MatPlotLib

Sir, a consciência é mesmo o resultado de interações quânticas

dentro dos neurônios?

Nasceu em o8/o8/1932, na Inglaterra

Page 16: CalcNum05 - Básico de MatPlotLib

“Cogito, ergo sum”

The Discourse on Method is best known as the source of the famous quotation "Je pense, donc je suis" ("I think, therefore I am"), which occurs in Part IV of the work. (The similar statement in Latin, Cogito ergo sum, is found in §7 of Principles of Philosophy.)

Page 17: CalcNum05 - Básico de MatPlotLib

Sigmund Freud Nasceu 06/05/1856 Morreu 23/09/1939

O criador da Psicanálise.

Aprendi nesse divã que “sinto, logo sou”

"The great question that has never been answered, and which I have not yet been able to answer,

despite my thirty years of research into the feminine soul, is 'What does a woman want?'"

From Sigmund Freud: Life and Work by Ernest Jones

Page 18: CalcNum05 - Básico de MatPlotLib

Mestre, Mestre ...

Eu faço engenharia, não história!

É Surfista, este é um tributo aos construtores de nossa civilização.

Por falar nisso, traga na próxima aula a história das pranchas de

“surf”.

Valendo nota!

Page 19: CalcNum05 - Básico de MatPlotLib

Ok, meu jovem.

Vamos começar chamando o Spyder

Através dele, vamos trabalhar com o

MatPlotLib, o PyPlot e PyLab.

Page 20: CalcNum05 - Básico de MatPlotLib

É o IDE (ambiente de trabalho integrado), mais “easy to use” que já vi

para o MatPlotLib, PyPlot e o PyLab.

É tipo MatLab.

Vocês, mulheres, falam demais...

Vamos começar!

Ah, aquele que vimos na aula

passada?

Page 21: CalcNum05 - Básico de MatPlotLib

Surfista impaciente, siga a sugestão abaixo.

Venha trabalhar dialogando com este portuguesinho.

Page 22: CalcNum05 - Básico de MatPlotLib

Ok Portuga ...

Vai Manual, não tenha vergonha.

Mostre-se em toda a sua beleza – é pelo bem do

ensino!

Page 23: CalcNum05 - Básico de MatPlotLib

Bem, eis aí meu nome, sobrenome e uma rápida

descrição do que sou!

Page 24: CalcNum05 - Básico de MatPlotLib

Tenho muita coisa a mostrar, é só rolar a janela

da “Consola” para baixo!

Manoel, vamos programar!

Page 25: CalcNum05 - Básico de MatPlotLib

Sim, vamos começar pela função mais utilizada, a

plot( ).

Page 26: CalcNum05 - Básico de MatPlotLib

Apenas, e tão somente, com o início do help da

função plot( ) já dá para você começar,

Surfista.

Page 27: CalcNum05 - Básico de MatPlotLib

Manoel, plotei um segmento com extremidades nos pontos

A = (2.0, 1.4) e B = (3.4, 2.8).

Lista das coordenadas x Lista das

coordenadas y

Page 28: CalcNum05 - Básico de MatPlotLib

Fácil, fácil! Vou plotar 2 segmentos

colados um no outro.

Page 29: CalcNum05 - Básico de MatPlotLib

Agora veja, Surfista, se eu utilizar ‘bo’, só

aparecem os 3 pontos.

Page 30: CalcNum05 - Básico de MatPlotLib

Só estou vendo dois pontos Loirinha, você

errou!!!

Apressadinho, olhe com atenção!

O ponto (2.0, 3.2) está no canto

superior esquerdo.

Page 31: CalcNum05 - Básico de MatPlotLib

Jovens não briguem!

Basta clicar e arrastar!

Page 32: CalcNum05 - Básico de MatPlotLib

Repetindo:

1. Cliquem na “cruz” e desloquem o mouse para a área gráfica (a branca);

2. O ponteiro do mouse mudará de “pato” para “ganso”;

3. Clicando como botão da esquerda do mouse, vocês arrastam o gráfico;

4. Clicando como botão da esquerda do mouse, vocês “dão zoom” no gráfico.

Page 33: CalcNum05 - Básico de MatPlotLib

Construí o triângulo abaixo, juntando tudo num único comando

plot( ).

Vejam o código na próxima transparência.

Page 34: CalcNum05 - Básico de MatPlotLib

Este é o código.

Page 35: CalcNum05 - Básico de MatPlotLib

Agora, vamos construir o gráfico da função

x ↦ x2

Page 36: CalcNum05 - Básico de MatPlotLib

Observem que a Professora usou 11 pontos no eixo-x,

i.é, 10 sub-intervalos de mesmo tamanho

Δ = ( 2.0-(-2.0))/10 = 0.4.

Mestre, faltam os eixos x e y, título do

gráfico, etc.

Page 37: CalcNum05 - Básico de MatPlotLib

Pois é Loirinha, temos diversas

opções para marcadores e

estilos de linhas.

Page 38: CalcNum05 - Básico de MatPlotLib

Temos também a possibilidade de

escolher diversas cores.

Page 39: CalcNum05 - Básico de MatPlotLib

Aí está Loirinha, conforme você pediu.

Veja o código na próxima transparência.

Page 40: CalcNum05 - Básico de MatPlotLib

Explico os detalhes depois, na sala de

aula..

Page 41: CalcNum05 - Básico de MatPlotLib

Eis como colocar o eixo-x:

Page 42: CalcNum05 - Básico de MatPlotLib

Estatísticas estão em toda parte.

A seguir, vamos fazer alguns gráficos envolvendo

estatística descritiva.

Por exemplo, folheando a revista cuja capa está atrás de mim,

encontramos, na reportagem sobre baleias Jubarte e Franca, o gráfico

na próxima transparência.

Page 43: CalcNum05 - Básico de MatPlotLib

A reportagem mostra, com dados estatísticos, exibidos através de gráficos,

que já havia, na época, um progresso sensível na proteção dessas espécies.

O gráfico é auto-explicativo, até para leigos.

Page 44: CalcNum05 - Básico de MatPlotLib

Excelente pergunta, Loirinha.

Não, não é a integral; trata-se apenas de uma liberdade gráfica do artista,

que não conhece o Cálculo.

Mestre, a área sombreada, em azul mais escuro, está

indicando a integral?

Page 45: CalcNum05 - Básico de MatPlotLib

http://veja.abril.com.br/ acervodigital/home.aspx

Poderemos obter muitas outras estatísticas no “Acervo Digital VEJA”

disponibilizado pelo BRADESCO .

Page 46: CalcNum05 - Básico de MatPlotLib

Surfista, vou mostrar como se faz

uma torta.

Page 47: CalcNum05 - Básico de MatPlotLib

Eu aprendi a fazer torta de banana, mas esta não

sei a receita!

Eis como achar receitas, Loirinha:

Page 48: CalcNum05 - Básico de MatPlotLib

Grande dica Manoel.

Descobri que pie é uma função, cujos parâmetros e descrição

assinalei.

Page 49: CalcNum05 - Básico de MatPlotLib

Veja Loirinha, a explicação dos parâmetros:

Page 50: CalcNum05 - Básico de MatPlotLib

Mestra, é muito fácil.

Importei o pylab, criei uma lista de nomes e outra x de valores.

Então chamei a função pie( ), passando esses dois parâmetros e fim de papo.

Page 51: CalcNum05 - Básico de MatPlotLib

É Surfista, mas sua torta é oval.

Tricotando com a Mestra (mulheres falam demais...) aprendi

a usar a função figure( ).

Page 52: CalcNum05 - Básico de MatPlotLib

Aí Surfista, o help da função figure( ).

Aprenda que perguntar não ofende! Já marquei detalhes prá

você.

Page 53: CalcNum05 - Básico de MatPlotLib

O observe o detalhe do título da janela gráfica.

Page 54: CalcNum05 - Básico de MatPlotLib

Jovens, refiz tudo de uma maneira mais Pythônica:

Importei o pyplot do matplotlib e usei namespaces.

Page 55: CalcNum05 - Básico de MatPlotLib
Page 56: CalcNum05 - Básico de MatPlotLib

Este é um dos superpoderes da

Spyder!!

Namespaces permitem ao interpretador Python distinguir nomes

iguais de bibliotecas distintas.

Como o CPF, que permite distinguir pessoas diferentes com mesmo nome.

Page 57: CalcNum05 - Básico de MatPlotLib

Usei o parâmetro explode para destacar

os animais com os menores valores

percentuais.

Page 58: CalcNum05 - Básico de MatPlotLib

Vamos até o portal da Globo, http://g1.globo.com/

buscar pelos resultados da eleição para Prefeito da cidade do Rio de

Janeiro.

Page 59: CalcNum05 - Básico de MatPlotLib

Encontramos os resultados ao lado.

Vamos fazer um gráfico de barras horizontais

semelhante a este.

Page 60: CalcNum05 - Básico de MatPlotLib

Para construir o gráfico de barras horizontais

usaremos a função barh( )

Page 61: CalcNum05 - Básico de MatPlotLib

Mestre, eis seu programa e o gráfico

de barras.

Page 62: CalcNum05 - Básico de MatPlotLib

Mestres, os nomes dos candidatos foram

cortados!

E tem muita coisa que não entendi.

Page 63: CalcNum05 - Básico de MatPlotLib

Surfista, para ajustar os nomes:

1. Clique no botão marcado;

2. Ele abrirá a janela aos meus pés;

3. Deslize o controle ”left” para a direita até ajustar.

Page 64: CalcNum05 - Básico de MatPlotLib

Acrescentando anotações ao

gráfico.

Page 65: CalcNum05 - Básico de MatPlotLib

Como ficou acrescentando o

texto.

Page 66: CalcNum05 - Básico de MatPlotLib

Este é o help sobre a função

annotate( ).

Não deixe de ver o resto.

Page 67: CalcNum05 - Básico de MatPlotLib

http://www.ibge.gov.br/home/estatistica/populacao/censohistorico/1940_1996.shtm

No site do IBGE, mais precisamente, no endereço abaixo,

obtemos as séries históricas:

Page 68: CalcNum05 - Básico de MatPlotLib

Vamos usar a função bar( ) para construir um gráfico de barras que permita comparar a evolução das

população totais de homens e mulheres.

Page 69: CalcNum05 - Básico de MatPlotLib

Mais detalhes sobre bar( )

Page 70: CalcNum05 - Básico de MatPlotLib

Meu programa.

Aprendizes devem procurar help sobre as funções

xticks( ), yticks( ), legend( ), etc

Page 71: CalcNum05 - Básico de MatPlotLib

O resultado.

Page 72: CalcNum05 - Básico de MatPlotLib

Tchau, até a próxima aula!