ipeadata-lab / ipeaplot

ipeaplot: criando graficos no padrão editorial do Ipea
https://ipeadata-lab.github.io/ipeaplot/
Other
2 stars 0 forks source link

Teste: Padrão Ipea vs. ipeaplot #12

Closed cavalcanti1985 closed 1 year ago

cavalcanti1985 commented 1 year ago

@PedroJorge7 Após resolvermos as fontes e a paleta de cores, é hora de avançarmos para uma fase sistemática de testes. Nessa etapa, compararemos os gráficos produzidos no formato "ideal" (padrão do Editorial) com os gerados pelo pacote ipeaplot.

Para isso, anexo o material utilizado no projeto inicial do pacote, de 2018. O PDF contém diversos exemplos de gráficos, mostrando a comparação entre o original recebido pelo Editorial e a versão padronizada.

Temos à nossa disposição dois códigos em R. O primeiro cria as bases de dados utilizada nos gráficos, enquanto o segundo produz alguns dos mesmos gráficos no formato padrão do ggplot2.

A tarefa consiste em reproduzir esses gráficos utilizando o pacote ipeaplot, buscando alcançar o mais próximo possível do "padrão Ipea" (podemos incluir códigos específicos para cada gráfico, mesmo que não sejam incluúdos no pacote, pois utilizaremos isso na vinheta de orientação). Caso haja algum aspecto que não seja possível reproduzir, registramos esse fato e buscaremos soluções nos fóruns, como o Stack Overflow.

Após concluir a reprodução dos gráficos, usaremos o material para criar um novo PDF, onde faremos uma comparação detalhada entre o padrão do Editorial e o output do nosso pacote ipeaplot. Este PDF será enviado para o Editorial para análise e consideração.

###############################################
############# Criando bases de dados ##########
###############################################

######## GRAFICO 1
Ano <- factor(c(2000,2005,2010,2015,2020,2025,2030,2035,2040,2045,2050))
Populacao <- c(6.1,6.5,6.9,7.3,7.7,8.0,8.3,8.6,8.9,9.1,9.3)
labels <- as.character(Populacao)
labels <- gsub("." , "," , labels, fixed=T)
base_graf1 <- data.frame(Ano,Populacao,labels)

######## GRAFICO 2
Assunto <- c('Produção Técnica do Ipea','Questões Administrativas',
'Questões de Ouvidoria','Serviços Ipea','Questões Improcedentes')
Freq <- c(588,680,434,285,407)
percentual <- round(Freq/sum(Freq),2)*100
base_graf2 <- data.frame(Assunto,Freq,percentual)

####### GRAFICO 3
Ano <- factor(c(1950,   1951,   1952,   1953,   1954,   1955,   1956,   1957,   1958,   1959,   1960,   1961,   1962,   1963,   1964,   1965,   1966,   1967,   1968,   1969,   1970,   1971,   1972,   1973,   1974,   1975,   1976,   1977,   1978,   1979,   1980,   1981,   1982,   1983,   1984,   1985,   1986,   1987,   1988,   1989,   1990,   1991,   1992,   1993,   1994,   1995,   1996,   1997,   1998,   1999,   2000,   2001,   2002,   2003,   2004,   2005,   2006,   2007,   2008,   2009,   2010,   2011,   2012,   2013,   2014))
Populacao<- c( 1.850116458, 1.791417471,    1.760491225,    1.751060624,    1.757374206,    1.773968217,    1.795950884,    1.81926587, 1.840930397,    1.860403495,    1.879485845,    1.90178203, 1.931384556,    1.96968284, 2.011263472, 2.052385316,   2.083875031,    2.098137208,    2.091095193,    2.06831928, 2.043373483,    2.018775478,    1.985792138,    1.944170268,    1.898407101,    1.850171278,    1.807798778,    1.779963926,    1.770930519,    1.77532254, 1.778741317,    1.77934085, 1.787498884,    1.803957627,    1.823106379,    1.844715108,    1.856490979,    1.844087147,    1.801286156,    1.7376904,  1.669804195,    1.607655387,    1.548374095,    1.4949701,  1.447065626,    1.399607643, 1.354384982,   1.318725392,    1.294773864,    1.279786607,    1.268049775,    1.257045807,    1.248951736,    1.243210965,    1.239058923,    1.236026043,    1.23309632, 1.229128787,    1.223387196,    1.215887987,    1.207869122,    1.198749205,    1.186540058,    1.170622969,    1.151783904)
labels <- as.character(Populacao)
labels <- gsub("." , "," , labels, fixed=T)
base_graf3<- data.frame(Ano,Populacao, labels)

######## GRAFICO 5
Ano <- seq(2009,2020,1)
Exabytes <- c(130,360,750,1400,3100,6000,10000,14000,19000,25000,31500,40000)

base_graf5 <- data.frame(Ano,Exabytes)

######## GRAFICO 6
library(reshape)
Ano <- seq(2004,2013,1)
Mundo <- c(4.2,3.8,4.1,4,1.5,-2,4,2.9,2.4,2.1)
UE <- c(2.6,2.2,3.4,3.2,0.6,-4.6,2.1,1.7,-0.4,0)

base_graf6 <- data.frame(Ano,Mundo,UE)
base_graf6<- melt(base_graf6, id=c("Ano"))

######## GRAFICO 7
pais <- c("Áustria","Bélgica","Bulgária","Croácia","Chipre","República Tcheca","Dinamarca",
"Estônia","Finlândia","França","Alemanha","Grécia","Hungria","Irlanda","Itália",
"Letônia","Lituânia","Luxemburgo","Malta","Holanda","Polônia","Portugal","România",
"Eslováquia","Eslovênia","Espanha","Suécia","Reino Unido")

petroleo <- c(90,100,97,72,104,96,-37,60,90,97,96,100,
81,102,89,104,90,98,98,97,96,98,52,89,107,96,95,38)

base_graf7 <- data.frame(pais,petroleo)

######## GRAFICO 8
pais <- c("África do Sul","Brasil","Federação Russa",
"China","Índia","OCDE")

final <- c(0.695,0.55,0.43,0.413,0.38,0.315)

inicio <- c(0.67,0.61,0.4,0.33,0.32,0.297)

base_graf8 <- data.frame(pais,final,inicio)

######## GRAFICO 9
base_graf9 <- read.csv2('dados_grafico9.csv')

######## GRAFICO 10
base_graf10<- read.csv2('dados_grafico10.csv')

######## Salvando graficos no formato Rdata
save(base_graf1,base_graf2,base_graf3,base_graf5,base_graf6,base_graf7,base_graf8,base_graf9, base_graf10,
    file='bases_de_dados.Rdata')

###############################################
############# Criando Gráficos ################
###############################################

######## GRAFICO 1
graf1 <- ggplot(data=base_graf1, aes(x=Ano, y=Populacao, fill=factor(2))) +
    geom_text(data=base_graf1,aes(x=Ano,y=Populacao,label=labels),vjust=-0.5, size=4)+  
        geom_bar(stat="identity") + 
    xlab('Ano') + 
    ylab('População') +
    scale_y_continuous(breaks=seq(0, 10, 1), limits=c(0,10))+
    theme(legend.position="none")

######## GRAFICO 2
y.breaks <- cumsum(base_graf2$Freq) - (base_graf2$Freq)/2
y.breaks

graf2 <- ggplot(base_graf2, aes(x='', y=Freq, fill=Assunto))+
    geom_bar(width = 1, stat = "identity", color='black')+coord_polar("y", start=0)+theme_minimal()+
    theme(panel.grid=element_blank(),
        legend.position="bottom",
        axis.ticks = element_blank(),legend.title=element_blank())+
    xlab('')+
    ylab('')+
    guides(fill=guide_legend(override.aes=list(colour=NA),nrow=2,byrow=TRUE))+
    scale_y_continuous(breaks=y.breaks,labels=base_graf2$percentual)

######## GRAFICO 5
graf5 <- ggplot(base_graf5, aes(x=Ano)) + 
geom_ribbon(aes(ymin=0, ymax=Exabytes, fill=factor(2)))+
scale_x_continuous(breaks=seq(2009, 2020, 1), limits=c(2009,2020))+
theme(legend.position="none")

######## GRAFICO 6
graf6 <- ggplot(base_graf6, aes(Ano, value, group=variable, colour=variable))+ 
geom_line(size=1)+
geom_point(aes(shape=variable),size=3)+
theme(legend.position="bottom",legend.title=element_blank(),
legend.key = element_rect(colour = "transparent", fill = "white"))+
scale_x_continuous(breaks=seq(2004, 2013, 1), limits=c(2004,2013))+
scale_y_continuous(breaks=seq(-6, 6, 2), limits=c(-6,6))+
xlab('Ano')+
ylab('Crescimento Anual')

######## GRAFICO 7
graf7 <- ggplot(data=base_graf7, aes(x=pais, y=petroleo, fill=factor(2))) +
    geom_bar(stat="identity") + 
    coord_flip()+
    xlab('Pa?s') + 
    ylab('') +
    theme(legend.position="none")

######## GRAFICO 8
library(reshape)
base_graf8<- melt(base_graf8, id=c("pais"))

graf8 <- ggplot(data=base_graf8, aes(x=pais, y=value, group=variable, fill=variable)) +
    geom_bar(position='dodge',stat="identity") + 
    coord_flip()+
    xlab('Pa?s') + 
    ylab('') +
    theme(legend.position="none")

######## GRAFICO 9
base_graf9_aux <- base_graf9[,c(1,4)]
library(reshape)
base_graf9<- melt(base_graf9[,-4], id=c("pais"))

graf9 <- 
ggplot() +  geom_bar(data=base_graf9, aes(x=pais, y=value, group=variable, fill=variable),stat="identity")+
    xlab('Pa?s') + 
    geom_point(data=base_graf9_aux, aes(x=pais,y=crescimento.do.PIB..ppc._perct))+
    geom_line(data=base_graf9_aux, aes(x=as.numeric(pais),y=crescimento.do.PIB..ppc._perct))+
    ylab('') +theme(axis.text.x = element_text(angle = 45, hjust = 1))+
    theme(legend.position="bottom",legend.title=element_blank())

dados_grafico9.csv dados_grafico10.csv exemplos de gráficos.pdf

PedroJorge7 commented 1 year ago

Opa pessoal

Fiz um rmarkdown com o comparativo dos gráficos e como ficaria no ipeaplot. Fiz algumas sugestões também. To colocando um pdf aqui, mas acho que ficou com a qualidade ruim. O endereço do rmk é esse: https://github.com/ipeadata-lab/ipeaplot/blob/master/tests/compara_editorial/intro_ipeaplot.Rmd

Sobre aquele ponto de ajustar a posição dos ticks, abri um help no stackoverflow. A solução que deram é boa, mas não o suficiente para generalizar dentro do pacote, pelo menos eu não consegui pensar numa solução (caso tenham posso incluir). https://stackoverflow.com/questions/76864033/adjusting-tick-marks/

Caso precise de algum ajuste posso fazer.

intro_ipeaplot.pdf

lucasmation commented 1 year ago

Legal. Eu acho q na comparação vc pode omitir os gráficos default do ggplot. O último gráfico tá com dados diferentes entre o original e os que tentam replica-lo

Pq os ticks e valores dos eixos tá tão fortes, bold? Seria bom deixá-los mais suaves

On Sun, Aug 13, 2023, 9:39 PM PedroJorge @.***> wrote:

Opa pessoal

Fiz um rmarkdown com o comparativo dos gráficos e como ficaria no ipeaplot. Fiz algumas sugestões também. To colocando um pdf aqui, mas acho que ficou com a qualidade ruim. O endereço do rmk é esse:

https://github.com/ipeadata-lab/ipeaplot/blob/master/tests/compara_editorial/intro_ipeaplot.Rmd

Sobre aquele ponto de ajustar a posição dos ticks, abri um help no stackoverflow. A solução que deram é boa, mas não o suficiente para generalizar dentro do pacote, pelo menos eu não consegui pensar numa solução (caso tenham posso incluir). https://stackoverflow.com/questions/76864033/adjusting-tick-marks/

Caso precise de algum ajuste posso fazer.

intro_ipeaplot.pdf https://github.com/ipeadata-lab/ipeaplot/files/12330903/intro_ipeaplot.pdf

— Reply to this email directly, view it on GitHub https://github.com/ipeadata-lab/ipeaplot/issues/12#issuecomment-1676551687, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAK4HCAIJ32U3PRK7F6K7RTXVF6WDANCNFSM6AAAAAA3BDFXOI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

PedroJorge7 commented 1 year ago

Pelo que estou testando, me parece que salvar em png tem perda de qualidade e o tamanho também é afetado. Quando salvo em pdf a qualidade fica boa, mas não consegui gerar o rmarkdown colocando um pdf

image

Sobre o ultimo gráfico, eu peguei os dados do endereço que o Pedro enviou aqui nesse issue. Vou ver se consigo replicar de outra forma.