Download - CalcNum05 - Básico de MatPlotLib
![Page 1: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/1.jpg)
Básico de MatPlotLib Prof. Paulo R. G. Bordoni
UFRJ
![Page 2: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/4.jpg)
![Page 5: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/8.jpg)
Douglas R. Hofstadter nos conduz por uma viagem maravilhosa sobre todas essas
coisas ...
Leia você também!
![Page 9: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/12.jpg)
M.C. Escher, Waterfall (1961), Litogravura
Descubram os tribar!
E as torres: mesma altura mas quantos
andares?
![Page 13: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/13.jpg)
M.C. Escher, Belvedere (1958), Litogravura
Descubram os tribar.
O quê o homem sentado no banco
segura?
![Page 14: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/16.jpg)
“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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/20.jpg)
É 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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/21.jpg)
Surfista impaciente, siga a sugestão abaixo.
Venha trabalhar dialogando com este portuguesinho.
![Page 22: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/23.jpg)
Bem, eis aí meu nome, sobrenome e uma rápida
descrição do que sou!
![Page 24: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/24.jpg)
Tenho muita coisa a mostrar, é só rolar a janela
da “Consola” para baixo!
Manoel, vamos programar!
![Page 25: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/25.jpg)
Sim, vamos começar pela função mais utilizada, a
plot( ).
![Page 26: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/28.jpg)
Fácil, fácil! Vou plotar 2 segmentos
colados um no outro.
![Page 29: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/29.jpg)
Agora veja, Surfista, se eu utilizar ‘bo’, só
aparecem os 3 pontos.
![Page 30: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/31.jpg)
Jovens não briguem!
Basta clicar e arrastar!
![Page 32: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/34.jpg)
Este é o código.
![Page 35: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/35.jpg)
Agora, vamos construir o gráfico da função
x ↦ x2
![Page 36: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/37.jpg)
Pois é Loirinha, temos diversas
opções para marcadores e
estilos de linhas.
![Page 38: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/38.jpg)
Temos também a possibilidade de
escolher diversas cores.
![Page 39: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/39.jpg)
Aí está Loirinha, conforme você pediu.
Veja o código na próxima transparência.
![Page 40: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/40.jpg)
Explico os detalhes depois, na sala de
aula..
![Page 41: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/41.jpg)
Eis como colocar o eixo-x:
![Page 42: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/46.jpg)
Surfista, vou mostrar como se faz
uma torta.
![Page 47: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/48.jpg)
Grande dica Manoel.
Descobri que pie é uma função, cujos parâmetros e descrição
assinalei.
![Page 49: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/49.jpg)
Veja Loirinha, a explicação dos parâmetros:
![Page 50: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/51.jpg)
É 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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/53.jpg)
O observe o detalhe do título da janela gráfica.
![Page 54: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/54.jpg)
Jovens, refiz tudo de uma maneira mais Pythônica:
Importei o pyplot do matplotlib e usei namespaces.
![Page 55: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/55.jpg)
![Page 56: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/57.jpg)
Usei o parâmetro explode para destacar
os animais com os menores valores
percentuais.
![Page 58: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/58.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/59.jpg)
Encontramos os resultados ao lado.
Vamos fazer um gráfico de barras horizontais
semelhante a este.
![Page 60: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/60.jpg)
Para construir o gráfico de barras horizontais
usaremos a função barh( )
![Page 61: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/61.jpg)
Mestre, eis seu programa e o gráfico
de barras.
![Page 62: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/62.jpg)
Mestres, os nomes dos candidatos foram
cortados!
E tem muita coisa que não entendi.
![Page 63: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/63.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/64.jpg)
Acrescentando anotações ao
gráfico.
![Page 65: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/65.jpg)
Como ficou acrescentando o
texto.
![Page 66: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/66.jpg)
Este é o help sobre a função
annotate( ).
Não deixe de ver o resto.
![Page 67: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/67.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/68.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/69.jpg)
Mais detalhes sobre bar( )
![Page 70: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/70.jpg)
Meu programa.
Aprendizes devem procurar help sobre as funções
xticks( ), yticks( ), legend( ), etc
![Page 71: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/71.jpg)
O resultado.
![Page 72: CalcNum05 - Básico de MatPlotLib](https://reader035.vdocuments.pub/reader035/viewer/2022081717/553bfd285503463a458b47d4/html5/thumbnails/72.jpg)
Tchau, até a próxima aula!