El paquete plotly permite la construcción de gráficas de alta calidad, incorporando la interactividad en los gráficos, mostrando botones para hacer zoom en una parte de la gráfica, redefinir los ejes X e Y, mostrar la información que contiene cada dato, mostrar datos filtrando por uno o varios factores… Además, son gráficos de tipo “responsive”: se adaptan a las dimensiones de la ventana en que aparecen.
La forma de construir los gráficos es:
# cargamos las librerías
library(plotly)
library(ggplot2)
# cargamos los datos
library(readxl)
#Importemos el conjunto de datos
data <- read_excel("RiesgoPobrezaTasa.xls")
#un factor
plot_ly(data,x=~riesgo1,y=~riesgo2,type="scatter",mode = "markers+text",color=~ccaa)
En esta gráfica, podemos:
Una cosa también interesante es que en el menú de la derecha (por comunidades), podemos pinchar en el circulito de color y seleccionar o quitar las comunidades que se muestran.
También podemos introducir una combinación de dos factores.
plot_ly(data,x=~riesgo1,y=~riesgo2,type="scatter",mode = "markers+text",color=~ccaa,symbol = ~agno)
Poniendo el cursor sobre un dato, obtenemos la información de ese dato.
Podemos incorporar una animación, con el comando
frame
.
plot_ly(data,x=~riesgo1,y=~riesgo2,type="scatter",color=~ccaa,frame = ~agno)
plotly
es usar un gráfico ya
generado por ggplot.g<-ggplot(data)+
aes(x=riesgo1,y=riesgo2,colour=ccaa,frame=agno)+
geom_point()+
labs(title="Tasa de Riesgo de Pobreza",x="Tasa",y="Tasa con alquiler imputado")+
scale_colour_discrete(name="CCAA")+
theme_bw()
ggplotly(g)
Para guardar el gráfico, podemos usar el botón Export del menú Viewer que aparece cuando ejecutamos el código. Nos permite exportar como imagen, copiar al portapeles o guardar como un archivo html, lo cual nos permitirá compartirlo, para que otras personas puedan usar la interactividad del gráfico, que es el objetivo principal de plotly.
Muy interesante es el uso de plotly
para la
visualización de datos en 3 dimensiones. Por ejemplo, usando los datos
de volcano
, que vienen incorporados en la base de datos de
R, podemos comprobar la utilidad de plotly
.
fig <- plot_ly(z = ~volcano)
fig <- fig %>% add_surface()
fig
Podemos añadir al gráfico más detalles:
fig <- plot_ly(z = ~volcano) %>% add_surface(
contours = list(
z = list(
show=TRUE,
usecolormap=TRUE,
highlightcolor="#ff0000",
project=list(z=TRUE)
)
)
)
fig <- fig %>% layout(
scene = list(
camera=list(
eye = list(x=1.87, y=0.88, z=-0.64)
)
)
)
fig