-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdolar
119 lines (108 loc) · 6.21 KB
/
dolar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#------Time Series
#------Author: Denis de Oliveira Rodrigues
#------Original:https://ggplot2tutor.com/global_annual_temperatures/temperatures/
library(tidyverse)
library(lubridate)
library(RCurl)
library(jsonlite)
#Obtemos um dia anterior da data atual baseada na data do pc
#também inserimos a data inicial
#td = temp_date
td<-Sys.Date()-1
initial_date <- '01-02-2002'
final_date <- format(td, "%m-%d-%Y")
q <-paste0("https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarPeriodo(dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)?@dataInicial='",initial_date,"'&@dataFinalCotacao='",final_date,"'&$format=json&$select=cotacaoCompra,cotacaoVenda,dataHoraCotacao")
resp <- fromJSON(q, simplifyDataFrame = TRUE)
cot_api <- as.data.frame(resp[[2]])
#Optamos por estruturar desta forma, pois não deu certo com o formato importado.
cot_api <- cot_api %>% mutate(data = ymd(str_sub(dataHoraCotacao,1,10))) %>% select(data, cotacao=cotacaoCompra)
#captamos os valores máximos e mínimos da série histórica e conforme o período os governos, além de criarmos uma classificação
max_serie <- round(max(cot_api$cotacao)+0.20,1)
min_serie <- round(min(cot_api$cotacao)-0.20,1)
breaks <- seq(min_serie,max_serie,.5)
max_lula <- round(as.numeric(cot_api %>%
filter(data >= date("2003-01-01"), data <= date("2010-12-31")) %>%
top_n(1, cotacao) %>%
select(cotacao)),3)
min_lula <- round(as.numeric(cot_api %>%
filter(data >= date("2003-01-01"), data <= date("2010-12-31")) %>%
top_n(-1,cotacao) %>%
select(cotacao)),3)
max_dilma <- round(as.numeric(cot_api %>%
filter(data >= date("2011-01-01"), data <= date("2016-08-31")) %>%
top_n(1,cotacao) %>%
select(cotacao)),3)
min_dilma <- round(as.numeric(cot_api %>%
filter(data >= date("2011-01-01"), data <= date("2016-08-31")) %>%
top_n(-1,cotacao) %>%
select(cotacao)),3)
max_temer <- round(as.numeric(cot_api %>%
filter(data >= date("2016-09-01"), data <= date("2018-12-31")) %>%
top_n(1,cotacao) %>%
select(cotacao)),3)
min_temer <- round(as.numeric(cot_api %>%
filter(data >= date("2016-09-01"), data <= date("2018-12-31")) %>%
top_n(-1,cotacao) %>%
select(cotacao)),3)
max_bolsonaro <- round(as.numeric(cot_api %>%
filter(data >= date("2019-01-01"), data <= date("2020-02-24")) %>%
top_n(1,cotacao) %>%
select(cotacao)),3)
ggplot(cot_api, aes(x = data, y = cotacao)) +
annotate("rect",
fill = "#1a9641", alpha = .1,
xmin = date("2003-01-01"), xmax = date("2010-12-31"),
ymin = min_serie, ymax = max_serie) +
annotate("rect",
fill = "#FFEC1A", alpha = .1,
xmin = date("2011-01-01"), xmax = date("2016-08-31"),
ymin = min_serie, ymax = max_serie) +
annotate("rect",
fill = "#fe9929", alpha = .1,
xmin = date("2016-08-31"), xmax = date("2018-12-31"),
ymin = min_serie, ymax = max_serie) +
annotate("rect",
fill = "#AD2414", alpha = .2,
xmin = date("2019-01-01"), xmax = date("2020-02-24"),
ymin = min_serie, ymax = max_serie) +
geom_ribbon(aes(ymax = cotacao, ymin = min_serie),
fill = "#3182bd", alpha = 0.7) +
geom_line(color = "#08306b") +
scale_y_continuous(limits = c(min_serie,max_serie), breaks = breaks) +
scale_x_date(breaks=seq(from = as.Date("2002-01-01"), to = as.Date("2020-02-24"), by = "year"), date_labels = "%Y", limits = c(min(cot_api$data),as.Date("2020-02-24"))) +
ggtitle(expression("Cotação diária do dólar (em reais), Brasil 2002 - 2020*")) +
# ggtitle("Cotação diária do dólar (em reais), Brasil 2002 - 2020*")+
labs(
subtitle = paste0("Série histórica da cotação do dólar ",
"de 2002 a 2020*, com destaque para maior e menor cotação em três governos anteriores,\n",
" e maior no governo atual."),
y = "Cotação diária em reais",
x = " ",
caption = paste0("Fonte: Olinda - Plataforma Ágil de Serviços de Dados (https://www.bcb.gov.br) \n",
"Visualização: Denis de Oliveira Rodrigues \n",
"*Limite de datas: 02/01/2002 e 23/02/2020 ")) +
annotate("segment", x=date("2003-01-01"), xend = date("2003-01-01"),
y = min_serie, yend = max_serie,linetype = "dashed", color="#6F213F") +
annotate("segment", x=date("2011-01-01"), xend = date("2011-01-01"),
y = min_serie, yend = max_serie,linetype = "dashed", color="#6F213F") +
annotate("segment", x=date("2016-08-31"), xend=date("2016-08-31"),
y = min_serie, yend = max_serie,linetype = "dashed", color="#6F213F") +
annotate("segment", x=date("2018-12-31"), xend=date("2018-12-31"),
y = min_serie, yend = max_serie,linetype = "dashed", color="#6F213F") +
annotate("text", x = date("2003-08-01"), y = 4,
hjust = 0, color = "#451225",
size = 3.7,
label = paste("Governo Lula \n"," Maior: R$",max_lula, "\n Menor: R$", min_lula)) +
annotate("text", x = date("2011-08-01"), y = 4,
hjust = 0, color = "#451225",
size = 3.7,
label = paste("Governo Dilma \n"," Maior: R$",max_dilma, "\n Menor: R$", min_dilma)) +
annotate("text", x = date("2016-10-08"), y = 4,
hjust = 0, color = "#451225",
size = 3.7,
label = paste("Governo Temer \n"," Maior: R$",max_temer, "\n Menor: R$", min_temer)) +
annotate("text", x = date("2019-06-15"), y = 4.45,
hjust = 0, color = "#451225",
size = 3.7,
label = paste("R$ ",round(max_bolsonaro,1))) +
theme(plot.title = element_text(size = 14, colour = "black"), title= element_text(face = "italic", colour = "#636363"))