Los gráficos son la tercera parte del proceso de análisis de datos. La primera parte trata sobre extracción de datos, la segunda parte discute limpiar y manipular los datos. Eventualmente, el científico de datos puede ser necesario expresar sus resultados gráficamente.
El trabajo del científico de datos se puede revisar en la siguiente imagen
- La primera tarea de un científico de datos es definir una pregunta de investigación. Esta pregunta de investigación depende de los objetivos y objetivos del proyecto.
- A continuación, una de las tareas más notables es la ingeniería de funciones. El científico de datos debe recopilar, manipular y limpiar los datos
- Una vez que se completa este paso, puede comenzar a explorar el conjunto de datos. A veces, la hipótesis original debe refinarse y cambiarse debido a un nuevo descubrimiento.
- Cuando el explicaciones se logra el análisis, el científico de datos debe evaluar la capacidad del lector comprender los conceptos y modelos básicos.
- Sus hallazgos deben presentarse en un formato que sea entendido por todas las partes interesadas. Uno de los mejores métodos para comunicar es por un grafico.
- Los gráficos son una herramienta increíble para simplificar análisis complejos.
En este tutorial, aprenderá:
paquete ggplot2
Esta sección del tutorial se centra en cómo hacer gráficos / tablas con R.
En este tutorial, usará el paquete ggplot2. Este paquete está construido sobre la base consistente del libro Grammar de gráficos escrito por Wilkinson, 2005. ggplot2 es muy flexible, incorpora muchos temas y especificación de tramas con un alto nivel de abstracción. Con ggplot2, puede trazar gráficos 3D y crear gráficos interactivos.
En ggplot2, un gráfico se compone de los siguientes argumentos:
- detalles
- mapeo estético
- objeto geométrico
- transformaciones estadísticas
- escamas
- sistema de coordinacion
- ajustes de posición
- cara
Aprenderá a controlar estos argumentos en el tutorial.
La sintaxis básica de ggplot2 es:
ggplot(data, mapping=aes()) + geometric object arguments: data: Dataset used to plot the graph mapping: Control the x and y-axis geometric object: The type of plot you want to show. The most common object are: - Point: `geom_point()` - Bar: `geom_bar()` - Line: `geom_line()` - Histogram: `geom_histogram()`
Gráfico de dispersión
Veamos cómo funciona ggplot con el conjunto de datos mtcars. Empiece trazando un diagrama de dispersión de la variable mpg y una variable drat.
Extensión básica de la parcela
library(ggplot2) ggplot(mtcars, aes(x = drat, y = mpg)) + geom_point()
Explicación del Código
- Primero captura el conjunto de datos mtcars en ggplot.
- Dentro del argumento aes (), agrega el eje xy el eje y.
- El signo + significa que desea que R siga leyendo el código. Hace que el código sea más legible al romperlo.
- Utilice geom_point () para el objeto geométrico.
Producción:
Diagrama de dispersión con grupos
A veces puede resultar interesante diferenciar los valores por grupo de datos (es decir, datos a nivel de factor).
ggplot(mtcars, aes(x = mpg, y = drat)) + geom_point(aes(color = factor(gear)))
Explicación del Código
- Los ejes () dentro de geom_point () controlan el color del grupo. El grupo debe ser un factor variable. Por lo tanto, cambia la marcha variable en un factor.
- En total, tienes los códigos aes (color = factor (engranaje)) que cambian el color de los puntos.
Producción:
Volver a su posición
La reprogramación de los datos es una gran parte del trabajo del científico de datos. Los detalles rara vez vienen en forma de un bonito reloj. Una solución para hacer que sus datos sean más sensibles para los migrantes es reprogramarlos.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) + geom_point(aes(color = factor(gear)))
Explicación del Código
- Cambia las variables xey log () justo dentro del mapeo aes ().
Tenga en cuenta que se pueden implementar otras transformaciones, como la estandarización o la normalización.
Producción:
Gráfico disperso con valores ajustados
Puede agregar otro nivel de información al gráfico. Puede trazar el valor de ajuste de una regresión lineal.
my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) + geom_point(aes(color = factor(gear))) + stat_smooth(method = "lm", col = "#C42126", se = FALSE, size = 1) my_graph
Explicación del Código
- gráfico: almacena su gráfico en el gráfico variable. Es útil evitar el uso excesivo o una línea de códigos demasiado compleja
- El argumento controla stat_smooth () para el modo de suavizado
- method = «lm»: regresión lineal
- col = «# C42126»: Código para el color rojo de la línea
- se = FALSE: no muestra el error estándar
- size = 1: 1 es el tamaño de la línea
Producción:
Tenga en cuenta que hay otros métodos de suavizado disponibles
- glm
- juego
- loess: valor predeterminado
- borde
Agregar información al gráfico
Hasta ahora, no hemos incluido información en los gráficos. Los gráficos deben ser informativos. El lector debería ver la historia detrás del análisis de datos con solo mirar el gráfico sin referencia a documentación adicional. Por tanto, los gráficos necesitan buenas etiquetas. Puede agregar etiquetas a una función de laboratorio ().
La sintaxis básica de un laboratorio () es:
lab(title = "Hello Guru99") argument: - title: Control the title. It is possible to change or add title with: - subtitle: Add subtitle below title - caption: Add caption below the graph - x: rename x-axis - y: rename y-axis Example:lab(title = "Hello Guru99", subtitle = "My first plot")
Añade un titulo
Claramente, solo la información obligatoria es un título que debe agregarse.
my_graph + labs( title = "Plot Mile per hours and drat, in log" )
Explicación del Código
- my_graph: utiliza el gráfico que almacenó. Evita reescribir todos los códigos cada vez que agrega nueva información al gráfico.
- Devuelve el título dentro del lab ().
- Código para el color rojo de la línea.
- se = FALSE: no muestra el error estándar
- size = 1: 1 es el tamaño de la línea
Producción:
Ponle un título con un nombre dinámico
Un título dinámico es útil para agregar información más precisa al título.
Puede utilizar la función paste () para imprimir texto estático y texto dinámico. La sintaxis básica de paste () es:
paste("This is a text", A) arguments - " ": Text inside the quotation marks are the static text - A: Display the variable stored in A - Note you can add as much static text and variable as you want. You need to separate them with a comma
Ejemplo:
A <-2010 paste("The first year is", A)
Producción:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
Producción:
## [1] "The first year is 2010 and the last year is 2018"
Puede agregar un nombre dinámico a nuestro gráfico, es decir, mpg promedio.
mean_mpg <- mean(mtcars$mpg) my_graph + labs( title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg) )
Explicación del Código
- Usted crea el promedio de mpg a promedio (mtcars $ mpg) almacenado en la variable mean_mpg
- Utiliza paste () con mean_mpg para crear un título dinámico que devuelve el valor promedio de mpg
Producción:
Añadir subtítulo
Dos detalles adicionales pueden hacer que su gráfico sea más transparente. Estás hablando de la leyenda y la leyenda. La leyenda va justo debajo del título. El subtítulo puede dar información sobre quién realizó el cálculo y la fuente de los datos.
my_graph + labs( title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Explicación del Código
- Dentro del laboratorio (), agregó:
- Relación entre Milla por hora y drat «: Agregar título
- subtitle = «Desglose de relaciones por clase de equipo»: agregar subtítulo
- caption = «Calcule los autores mismos: agregue un título
- Separa una coma con cada nueva información,
- Tenga en cuenta que rompe las líneas de código. No es obligatorio y solo ayuda a leer el código más fácilmente
Producción:
Cambiar el nombre del eje xy del eje y
Es posible que las propias variables del conjunto de datos no siempre sean explícitas o usen de forma rutinaria _ cuando hay varias palabras (es decir, GDP_CAP). No desea que ese nombre aparezca en su gráfico. Es importante cambiar el nombre o agregar más detalles, como las unidades.
my_graph + labs( x = "Drat definition", y = "Mile per hours", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Explicación del Código
- Dentro del laboratorio (), agregó:
- x = «Definición de sedimento»: cambiar el nombre del eje x
- y = «Milla por hora»: cambia el nombre del eje y
Producción:
Control de escalas
Puede controlar la escala del eje.
La función seq () es útil cuando necesita crear una secuencia de números. La sintaxis básica es:
seq(begin, last, by = x) arguments: - begin: First number of the sequence - last: Last number of the sequence - by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`
Por ejemplo, si desea crear un rango de 0 a 12 con el paso 3, tendrá cuatro números, 0 4 8 12
seq(0, 12,4)
Producción:
## [1] 0 4 8 12
Puede controlar el eje xy la escala del eje y como se muestra a continuación
my_graph + scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) + scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) + labs( x = "Drat definition", y = "Mile per hours", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Explicación del Código
- La función scale_y_continuous () controla el y-ais
- La función scale_x_continuous () controla la eje x.
- El interruptor controla el parámetro de división del eje. Puede agregar manualmente la secuencia numérica o usar la función seq ():
- seq (1, 3.6, por = 0.2): Cree seis números de 2.4 a 3.4 con el paso 3
- seq (1, 1.6, by = 0.1): Cree siete números del 1 al 1.6 con el paso 1
Producción:
tema
Finalmente, R nos permite personalizar una trama con diferentes temas. La biblioteca ggplot2 tiene ocho temas:
- theme_bw ()
- theme_light ()
- theme_classis ()
- theme_linedraw ()
- theme_dark ()
- theme_minimal ()
- theme_gray ()
- theme_void ()
my_graph + theme_dark() + labs( x = "Drat definition, in log", y = "Mile per hours, in log", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Producción:
Guardar parcelas
Después de todos estos pasos, es hora de guardar y compartir su gráfico. Coloca ggsave (‘NOMBRE DE ARCHIVO’) justo después de trazar el gráfico y se almacenará en el disco duro.
El gráfico se guarda en el directorio de trabajo. Para verificar el directorio de trabajo, puede ejecutar este código:
directory <-getwd() directory
Tracemos su excelente gráfico, guárdelo y verifique el lugar
my_graph + theme_dark() + labs( x = "Drat definition, in log", y = "Mile per hours, in log", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Producción:
ggsave("my_fantastic_plot.png")
Producción:
## Saving 5 x 4 in image
Nota: Solo con fines pedagógicos, creamos una función llamada open_folder () para abrir la carpeta del directorio por usted. Todo lo que tiene que hacer es ejecutar el código a continuación y ver dónde se almacena la imagen. Debería ver un archivo llamado my_fantastic_plot.png.
# Run this code to create the function open_folder <- function(dir) { if (.Platform['OS.type'] == "windows") { shell.exec(dir) } else { system(paste(Sys.getenv("R_BROWSER"), dir)) } } # Call the function to open the folder open_folder(directory)
Resumen
Puede resumir los argumentos para crear una gráfica en la siguiente tabla:
Propósito | Código |
---|---|
Extensión básica de la parcela | ggplot(df, aes(x = x1, y = y)) + geom_point() |
Parcela dispersa con un grupo de colores. | ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
Agregar valores ajustados | ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
Añade un titulo | ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
Añadir subtítulo | ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
Cambiar el nombre de x | ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
Cambiar nombre y | ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
Control de escala | ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1) |
Crear registros | ggplot(df, aes(x =log(x1), y = log(y))) + geom_point() |
tema | ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic() |
Ahorrar | ggsave("my_fantastic_plot.png") |