El paquete plotly es una herramienta poderosa para crear visualizaciones de datos de alta calidad. Con plotly, puedes construir gráficos impresionantes y aprovechar la interactividad para mejorar la experiencia del usuario. Los gráficos generados con plotly ofrecen diversas funcionalidades, como la capacidad de hacer zoom en una sección específica del gráfico, redefinir los ejes X e Y según las necesidades, visualizar información detallada de cada dato y filtrar los datos en función de uno o varios factores. Además, los gráficos plotly son altamente adaptables, ya que se ajustan automáticamente a las dimensiones de la ventana en la que se muestran. En resumen, plotly es una herramienta versátil y flexible que permite crear visualizaciones impactantes y altamente interactivas.
# cargamos las librerías
library(plotly)
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(ggplot2)
#un factor
plot_ly(iris,x=~Sepal.Length,y=~Sepal.Width,type="scatter",mode = "markers+text",color=~Species)
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(iris,x=~Sepal.Length,y=~Sepal.Width,type="scatter",mode = "markers+text",color=~Species,symbol = ~Species)
Poniendo el cursor sobre un dato, obtenemos la información de ese dato.
Podemos incorporar una animación, con el comando ‘frame’.
library(plotly)
fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Sepal.Width, color = ~Species, mode = "markers", type = "scatter",frame = ~Species)
fig <- fig %>% layout(autosize = TRUE, title = "Gráfico animado de iris",
xaxis = list(title = "Longitud del sépalo"),
yaxis = list(title = "Ancho del sépalo"))
fig
Otra opción para aplicar plotly es usar un gráfico ya generado por ggplot.
g<-ggplot(iris)+
aes(x=Sepal.Length,y=Sepal.Width,frame=Species)+
geom_point()+
labs(title="Iris",x="Largo Sepálo",y="Ancho Sepálo")+
scale_colour_discrete(name="Especies")+
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.
fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Sepal.Width, z = ~Petal.Length,
color = ~Species, mode = "markers", type = "scatter3d")
fig <- fig %>% layout(autosize = TRUE, title = "Gráfico de dispersión tridimensional de iris",
scene = list(xaxis = list(title = "Longitud del sépalo"),
yaxis = list(title = "Ancho del sépalo"),
zaxis = list(title = "Longitud del pétalo")))
fig
fig <- plot_ly(data = iris, x = ~Sepal.Width, color = ~Species, type = "histogram")
fig <- fig %>% layout(autosize = TRUE, title = "Histograma interactivo de ancho del sépalo",
xaxis = list(title = "Ancho del sépalo"),
yaxis = list(title = "Frecuencia"))
fig
fig <- plot_ly(data = iris, x = ~Species, y = ~Petal.Length, type = "box")
fig <- fig %>% layout(autosize = TRUE, title = "Gráfico de caja y bigotes de longitud del pétalo",
xaxis = list(title = "Especie"),
yaxis = list(title = "Longitud del pétalo"))
fig
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(plotly)
library(ggplot2)
iris_avg <- iris %>% group_by(Species) %>% summarise(avg_petal_length = mean(Petal.Length))
fig <- plot_ly(data = iris_avg, x = ~Species, y = ~avg_petal_length, type = "scatter", mode = "lines")
fig <- fig %>% layout(autosize = TRUE, title = "Gráfico de líneas de longitud promedio del pétalo por especie",
xaxis = list(title = "Especie"),
yaxis = list(title = "Longitud promedio del pétalo"))
fig
library(tidyr)
iris_stacked <- iris %>% pivot_longer(cols = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width"),
names_to = "Variable", values_to = "Valor")
fig <- plot_ly(data = iris_stacked, x = ~Species, y = ~Valor, color = ~Variable,
type = "scatter", mode = "lines", stackgroup = "one")
fig <- fig %>% layout(autosize = TRUE, title = "Gráfico de área apilada de las variables de iris",
xaxis = list(title = "Especie"),
yaxis = list(title = "Valor"))
fig
library(dplyr)
library(plotly)
library(ggplot2)
fig <- plot_ly(data = iris, x = ~Species, y = ~Sepal.Length, color = ~Species,type = "bar", barmode = "group")
fig <- fig %>% layout(autosize = TRUE, title = "Gráfico de barras agrupadas de longitud del sépalo",
xaxis = list(title = "Especie"),
yaxis = list(title = "Longitud del sépalo"))
fig
fig <- plot_ly(data = iris, r = ~Sepal.Length, theta = ~Species, color = ~Species,
type = "scatterpolar", mode = "markers")
fig <- fig %>% layout(autosize = TRUE, title = "Gráfico de dispersión polar de longitud del sépalo",
polar = list(radialaxis = list(title = "Longitud del sépalo")))
fig
cor_matrix <- cor(iris[, 1:4])
fig <- plot_ly(z = cor_matrix, x = colnames(cor_matrix), y = colnames(cor_matrix),
type = "heatmap")
fig <- fig %>% layout(autosize = TRUE, title = "Mapa de calor de correlación de las variables de iris")
fig
Estos ejemplos te ofrecen más variedad en las visualizaciones, incluyendo gráficos de área apilada, gráficos de barras agrupadas, gráficos de dispersión polar y mapas de calor. Puedes ajustar los parámetros y opciones de diseño según tus necesidades y preferencias. ¡Diviértete explorando las distintas formas de visualizar los datos de “iris” con Plotly en R!