Librerias a utilizar

Para graficar con dos ejes vamos a utilizar algunas librerĆ­as, no todas son especificamente para este fin, tal como readxl que se utilizarĆ” para cargar los datos.

library(tidyverse)
library(patchwork) 
library(hrbrthemes)
library(readxl)

Cargando los datos

Para este ejemplo, utilizaremos dos series del tipo de cambio:

DolarEuro<-read_excel("DolarEuro.xlsx")

class(DolarEuro)
## [1] "tbl_df"     "tbl"        "data.frame"
Datos de los tipos de cambio
Fecha Dolar Euro
2019-08-01 19.6850 22.10767
2019-09-01 19.5865 21.51554
2019-10-01 19.3242 21.38397
2019-11-01 19.3325 21.53853
2019-12-01 19.1071 21.17506
2020-01-01 18.8040 20.94650
2020-02-01 18.8443 21.72097
2020-03-01 22.3784 25.76741
2020-04-01 24.2658 26.19670
2020-05-01 23.4230 24.67502
2020-06-01 22.2990 25.92582
2020-07-01 22.4033 26.26069
2020-08-01 22.2072 26.17914
2020-09-01 21.6810 25.96914
2020-10-01 21.2705 24.81775
2020-11-01 20.3819 24.09425
2020-12-01 19.9651 24.35630
2021-01-01 19.9215 24.56504
2021-02-01 20.3097 25.41262
2021-03-01 20.7555 24.02620

Es importante considerar el formato de los datos, con la finalidad de poder trabajar con fechas en formato "aaaa-mm-dd".

Graficando dos geometrĆ­as

En esta sección se muestra la forma en cómo se puede fusionar dos graficos en un solo espacio (dos figuras en una dimensión):

p1<-ggplot(DolarEuro, aes(x=as.Date(Fecha), y=Dolar))+
  geom_line(color="#69b3a2", size=1)+
  scale_x_date(date_breaks = "5 year", date_labels = "%Y")+
  xlab("Fecha")+
  ggtitle("USD/MXN")+
  theme_ipsum()

p2<-ggplot(DolarEuro, aes(x=as.Date(Fecha), y=Euro))+
  geom_line(color="#CD6155", size=1)+
  scale_x_date(date_breaks = "5 year", date_labels = "%Y")+
  xlab("Fecha")+
  ggtitle("EUR/MXN")+
  theme_ipsum()

p1+p2+
  labs(caption = "Elaboración propia con datos de BANXICO")

Nos damos cuenta que al graficar con este estilo, tenemos perdida de espacio, por lo cual agregamos un segundo eje.

Graficando con dos ejes

Al graficar con dos ejes, debemos hacer una serie de pasos, los cuales son:

DolarColor <- "#69b3a2" #Color para dolar
EurColor <- "#CD6155" # Color para Euro

EU<-data.frame(cbind(DolarEuro, DolarColor,EurColor))

ggplot(EU, aes(x=as.Date(Fecha)))+
  geom_line(aes(y=Dolar), size=1, color=DolarColor)+ 
  geom_line(aes(y=Euro), size=1, color=EurColor)+
  scale_y_continuous(name="USD/MXN",
               sec.axis = sec_axis(~.*1,name = "EUR/MXN"))+
  scale_x_date(date_breaks = "2 year", date_labels = "%Y")+
  theme_ipsum()+
  theme(
    axis.title.y = element_text(color=DolarColor, size=13),
    axis.title.y.right = element_text(color=EurColor, size = 13)
  )+
  xlab("Fecha")+
  ggtitle("Tipo de cambio USD/MXN y EUR/MXN")+
  labs(caption = "Elaboración propia con datos de BANXICO")