Pictograma

terça-feira, 2 de outubro de 2007

Esse foi um trabalho realizado pelos alunos Admilson Buzinaro e Marcos Tadeu Andrade Cordeiro, para a disciplina de Análise Gráfica, ministrada pelo Profº Adilson dos Anjos, no segundo semestre de 2006. Foi tão criativo que o professor disponibilizou o código no site.


EXEMPLO DE PICTOGRAMA

Em meados de 1969, uma região situada ao sul do estado do Texas, no Estados Unidos, tinha sua economia baseada quase que exclusivamente no comércio varejista e no turismo. No entanto, em 1970, descobriu-se que nesta região havia petróleo. Estudos geológicos indicavam que ali, encontrava-se a maior reserva petrolífera já encontrada em solo norte-americano. Desde então, várias empresas começaram a explorar este petróleo. O gráfico abaixo, mostra a evolução da produção, entre os anos de 1970 e 1976 (em milhares de barris).

OBS: As linha verde, indica a produção máxima, e a linha vermelha, a produção mínima.



CÓDIGOS PARA UTILIZAÇÃO NO SOFTWARE R
set.seed(123) #semente utilizada
(ano=seq(1970,1975,1))
(prod=rbinom(6,50,.4))

pictograma.petroleo = function(ano,prod){
tit="Produção de Petróleo entre 1970 e 1975"
plot(ano,prod,las=1,cex.main=1,main=tit,bty="u",xlab="Ano",cex.axis=.65,ylim=c(0,max(prod)+8),xlim=c(min(ano)-.5,max(ano)+.5),type="h",ylab="Produtividade \n (em milhares de barris)",cex=4,col="black",cex.lab=.7)
for(i in 1:length(ano)){
segments(ano[i],0,ano[i],prod[i],lwd=2)


v=prod[i]/150

polygon(c(ano[i]-v,ano[i],ano[i]+
v,ano[i]+.25*v,ano[i]-.25*v),c(0,40*v,0,prod[i],prod[i]),density=10,angle=45)
polygon(c(ano[i]-v,ano[i],ano[i]+
v,ano[i]+.25*v,ano[i]-.25*v),c(0,40*v,0,prod[i],prod[i]),density=10,angle=-45)
polygon(c(ano[i]-v,ano[i],ano[i]+
v,ano[i]+.25*v,ano[i]-.25*v),c(0,40*v,0,prod[i],prod[i]),density=10,angle=0)

s=.7 # tamanho
d=.95 # localização
lines(c(ano[i]-v*s,ano[i]+s*v),rep(prod[i]*d,2))
polygon(c(ano[i]-v*s,ano[i]+s*v,ano[i]+v*s,ano[i]-s*v),c(rep(prod[i]*(d-.02),2),rep(prod[i]*(d+.02),2)))

s=1 # tamanho
d=.6 # localização
lines(c(ano[i]-v*s,ano[i]+s*v),rep(prod[i]*d,2))
polygon(c(ano[i]-v*s,ano[i]+s*v,ano[i]+v*s,ano[i]-s*v),c(rep(prod[i]*(d-.02),2),rep(prod[i]*(d+.02),2)))

points(ano[i]-v,0,pch=15,cex=1)
points(ano[i]+v,0,pch=15,cex=1)
}
segments(min(ano)-5,min(prod),max(ano)+5,min(prod),lty=4,col="red",lwd=1.5)
segments(min(ano)-5,max(prod),max(ano)+5,max(prod),lty=4,col="darkgreen",lwd=1.5)
segments(min(ano)-5,mean(prod),max(ano)+5,mean(prod),lty=2,col="darkblue",lwd=1)
}

pictograma.petroleo(ano,prod)

legend("topright",title=c("Produção"),c("Máxima", "Mínima","Média"), lty =
c(4,4,2),col=c("darkgreen","red","darkblue"),cex=.7)

0 Observações: