Saltar al contenido principal
LibreTexts Español

3.3: Creación de trazados desde cero en R usando gráficos base

  • Page ID
    69217
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Como vimos en la última sección, las funciones para crear gráficos de puntos, stripcharts, boxplots, barplots e histogramas tienen argumentos que podemos usar para alterar la apariencia de la salida de la función. Por ejemplo, aquí está la lista completa de argumentos disponibles cuando usamos dotchart () que controlan lo que muestra la gráfica.

    dotchart (x, etiquetas = NULL, groups = NULL, gdata = NULL, cex = par (“cex”), pt.cex = cex, pch = 21, gpch = 21, bg = par (“bg”), color = par (“fg”), gcolor = par (“fg”), lcolor = “gris”, xlim = rango (x [es.finito (x)]), main = NULL, xlab = NULL, ylab = NULL,...)

    Cada uno de los argumentos tiene un valor predeterminado, lo que significa que no necesitamos especificar el valor para un argumento a menos que deseemos cambiar su valor, como hicimos cuando establecemos pch en 19. El argumento final de... indica que podemos cambiar cualquiera de una larga lista de parámetros gráficos que controlan lo que vemos cuando usamos dotchart.

    Creación de un diagrama de dispersión simple usando R

    Una de las visualizaciones más comunes, y más importantes, en la química analítica es una gráfica de dispersión en la que nos interesa la relación, si la hay, entre dos mediciones trazando los valores para una variable a lo largo del eje x y los valores para la otra variable a lo largo de y - eje. Para este ejercicio, utilizaremos algunos datos del Puget Sound Data Hoard que dan la masa y el diámetro para 816 M&Ms obtenidos de una bolsa de 14.0-oz de M&Ms lisos, una bolsa de 12.7 oz de M&Ms de maní y una bolsa de 12.7 oz de M&Ms de mantequilla de maní Vamos a leer los datos en R y almacenarlos en un marco de datos con el nombre psmm_data. Puedes descargar una copia de los datos usando este enlace guardarlos en tu directorio de trabajo.

    psmm_data = read.csv (“datos/PugetSoundm&mData.csv”)

    Podríamos esperar que a medida que aumenta el diámetro de un M&M también lo hará la masa del M&M; también podríamos esperar que la relación entre diámetro y masa pueda depender de si las M&M son simples, maní o mantequilla de maní. Para que podamos acceder a los datos de cada tipo de M&M, usemos la función which () para crear vectores que designen los números de fila para cada uno de los tres tipos de M&Ms.

    pb_id = cual (psmm_data$type == “mantequilla de maní”)

    plain_id = cual (psmm_data$type == “plain”)

    peanut_id = cual (psmm_data$type == “cacahuete”)

    Normalmente nos interesa cómo una variable afecta a la otra variable. Llamamos a la primera la variable independiente y la colocamos en el eje x y llamamos a la segunda la variable dependiente y la colocamos en el eje y. Aquí usaremos diámetro como variable independiente y masa como variable dependiente. Para crear una gráfica de dispersión para las M&Ms simples usamos la función plot (x, y) donde x son los datos que se van a trazar en el eje x e y son los datos a trazar en el eje y.

    plot (x = psmm_data$diámetro [plain_id], y = psmm_data$masa [plain_id])

    clipboard_e04514f19f3de7052881d0273e46ddd06.png
    Figura\(\PageIndex{1}\): Un diagrama de dispersión simple creado usando la función plot () de R.

    Personalización de un trazado creado con R

    Aunque nuestra gráfica de dispersión muestra que la masa de una llanura M&M aumenta a medida que aumenta su diámetro, no es una parcela particularmente atractiva. Además de especificar x e y, la función plot nos permite pasar argumentos adicionales para personalizar nuestra trama; estos son algunos de estos argumentos opcionales:

    type = “opción. Este argumento especifica cómo se muestran los puntos; hay una serie de opciones, pero las más útiles son “p” para los puntos (este es el valor predeterminado), “l” para líneas sin puntos, “b” para los puntos y líneas que no tocan los puntos, “o” para los puntos y líneas que pasan por los puntos, “h” para los histogramas líneas verticales, y “s” para escalones de escalera; use “n” si desea suprimir los puntos.

    pch = número. Este argumento selecciona el símbolo utilizado para trazar los datos, con el número asignado a cada símbolo que se muestra a continuación. La opción predeterminada es 1, o un círculo abierto. Los símbolos 15—20 se rellenan usando el color del límite del símbolo, y los símbolos 21—25 pueden tomar un color de fondo que es diferente del límite del símbolo. Consulte más adelante en este documento para obtener más detalles sobre la configuración de colores. La siguiente figura muestra las diferentes opciones.

    # código de http://www.sthda.com/english/wiki/r-...available-in-r
    oldPar = par ()
    par (font = 2, mar = c (0.5, 0, 0, 0))
    y = rev (c (rep (1, 6), rep (2, 5), rep (3, 5), rep (4, 5), rep (5, 5)))
    x = c (rep (1:5, 5), 6)
    parcela (x, y, pch = 0:25, cex = 1.5, ylim = c (1, 5.5), xlim = c (1, 6.5),
    ejes = FALSO, xlab = “”, ylab = “”, bg = “azul”)
    texto (x, y, labels = 0:25, pos = 3)
    par (mar = OldPar$mar, font = OldPar$ fuente)

    clipboard_ec1ac8be58601b49347e60dd07e01ba67.png
    Figura\(\PageIndex{2}\): Los 25 símbolos pch disponibles en los gráficos base de R.

    lty = número. Este argumento especifica el tipo de línea que se va a dibujar; las opciones son 1 para una línea continua (esta es la predeterminada), 2 para una línea discontinua, 3 para una línea de puntos, 4 para una línea de puntos y trazos, 5 para una línea de trazos largos y 6 para una línea de dos guiones.

    lwd = número. Este argumento establece el ancho de la línea. El valor por defecto es 1 y cualquier otra entrada simplemente escala el ancho relativo al valor predeterminado; así lwd = 2 dobla el ancho y lwd = 0.5 corta el ancho por la mitad.

    bty = “opción. Este argumento especifica el tipo de cuadro a dibujar alrededor de la trama; las opciones son “o” para dibujar los cuatro lados (este es el predeterminado), “l” para dibujar en el lado izquierdo y el lado inferior solamente, “7” para dibujar en el lado superior y solo el lado derecho, “c” para dibujar todos menos el lado derecho, “u” para dibujar todos menos el lado superior, “]” dibujar todos menos el lado izquierdo, y “n” omitir los cuatro lados.

    ejes = lógico. Este argumento indica si los ejes están dibujados (VERDADERO) o no dibujados (FALSO); el valor por defecto es TRUE.

    xlim = c (inicio, fin). Este argumento establece los límites para el eje x, anulando los límites predeterminados establecidos por el comando plot ().

    ylim = c (inicio, fin). Este argumento establece los límites para el eje y, anulando los límites predeterminados establecidos por el comando plot ().

    xlab = “texto. Este argumento especifica la etiqueta para el eje x, anulando la etiqueta predeterminada establecida por el comando plot ().

    ylab = “texto. Este argumento especifica la etiqueta para el eje y, anulando la etiqueta predeterminada establecida por el comando plot ().

    main = “texto. Este argumento especifica el título principal, que se coloca encima de la trama, anulando el título predeterminado establecido por el comando plot ().

    sub = “texto. Este argumento especifica el subtítulo, que se coloca debajo de la gráfica, anulando el subtítulo predeterminado establecido por el comando plot ().

    cex = número. Este argumento controla el tamaño relativo de los símbolos utilizados para trazar puntos. El valor por defecto es 1 y cualquier otra entrada simplemente escala el tamaño relativo al valor predeterminado; así cex = 2 dobla el tamaño y cex = 0.5 corta el tamaño a la mitad.

    cex.axis = número. Este argumento controla el tamaño relativo del texto utilizado para la escala en ambos ejes; vea la entrada anterior para cex para más detalles.

    cex.lab = número. Este argumento controla el tamaño relativo del texto utilizado para la etiqueta en ambos ejes; vea la entrada anterior para cex para más detalles.

    cex.main = número. Este argumento controla el tamaño relativo del texto utilizado para el título principal de la trama; vea la entrada anterior para cex para más detalles.

    cex.sub = número. Este argumento controla el tamaño relativo del texto utilizado para el subtítulo de la trama; vea la entrada anterior para cex para más detalles.

    col = número o “cadena. Este argumento controla el color de los símbolos utilizados para trazar puntos. Hay 657 colores disponibles, para los cuales el valor predeterminado es “negro” o 24. Puedes ver una lista de colores (número y cadena de texto) escribiendo colors () en la consola.

    col.axis = número o “cadena. Este argumento controla el color del texto utilizado para la escala en ambos ejes; vea la entrada anterior para col para más detalles.

    col.lab = número o “cadena. Este argumento controla el color del texto utilizado para la etiqueta en ambos ejes; vea la entrada anterior para col para más detalles.

    col.main = número o “cadena. Este argumento controla el color del texto utilizado para el título principal de la trama; vea la entrada anterior para col para más detalles.

    col.sub = número o “cadena. Este argumento controla el color del texto utilizado para el subtítulo de la trama; vea la entrada anterior para col para más detalles.

    bg = número o “cadena. Este argumento establece el color de fondo para los símbolos de la trama 21—25; vea las entradas anteriores para pch y para col para más detalles.

    Usemos algunos de estos argumentos para mejorar nuestra gráfica de dispersión agregando algo de color y ajustando el tamaño de los símbolos utilizados para trazar los datos, y agregando un título y algunas etiquetas más informativas para los dos ejes.

    plot (x = psmm_data$diameter [plain_id], y = psmm_data$mass [plain_id], xlab = “diámetro de M&Ms”, ylab = “masa de M&Ms”, main = “Diámetro y masa de M&Ms lisos”, pch = 19, cex = 0.5, col = “azul”)

    clipboard_e460b0624a286e7f4c62b5b8762008535.png
    Figura\(\PageIndex{3}\): Una versión mejorada de la gráfica de dispersión de la Figura\(\PageIndex{1}\).

    Modificación de un trazado existente creado con R

    Podemos modificar una gráfica existente de varias maneras útiles, como agregar un nuevo conjunto de datos, agregar una línea de referencia, agregar una leyenda, agregar texto y agregar un conjunto de líneas de cuadrícula; estas son algunas de las cosas que podemos hacer:

    puntos (x, y,.). Este comando es idéntico al comando plot (), pero superpone los nuevos puntos en la gráfica actual en lugar de borrar primero la gráfica anterior. Nota: el comando points () no puede volver a escalar los ejes; por lo tanto, debe asegurarse de que su trazado original, creado usando el comando plot (), tenga límites de eje x y eje y que satisfagan sus necesidades.

    abline (h = número,..). Este comando agrega una línea horizontal en y = número con el color, el tipo y el tamaño de la línea establecidos usando los argumentos opcionales.

    abline (v = número,..). Este comando agrega una línea vertical en x = número con el color, el tipo y el tamaño de la línea establecidos usando los argumentos opcionales.

    abline (b = número, a = número,..). Este comando agrega una línea diagonal definida por una pendiente (b) y una intercepción y (a); el color, el tipo y el tamaño de la línea se establecen usando los argumentos opcionales. Como veremos en el Capítulo 8, este es un comando útil para mostrar los resultados de una regresión lineal.

    leyenda (ubicación, leyenda,.). Este comando agrega una leyenda a la trama actual. La ubicación se especifica de una de dos maneras:

    • dando las coordenadas x e y para la esquina superior izquierda de la leyenda usando x = número e y = número)

    • usando location = “keyword” donde la palabra clave es una de “topleft”, “top”, “topright”, “right”, “bottomright”, “bottom right”, “bottom”, “bottomleft” o “left”; el argumento opcional inset = number mueve la leyenda desde el margen cuando se usa una palabra clave (se necesita una valor de 0 a 1 como fracción del área de la parcela; el valor por defecto es 0)

    La leyenda se agrega como un vector de cadenas de caracteres (una por cada elemento de la leyenda), y cualquier formato que lo acompañe, como símbolos de trazado, líneas o colores, se pasa como vectores de la misma longitud; observe cuidadosamente el ejemplo al final de esta sección para ver cómo funciona este comando.

    texto (ubicación, etiqueta,.). Este comando agrega el texto dado por “label” a la trama actual. La ubicación se especifica proporcionando valores para x e y usando x = número e y = número. Por defecto, el texto está centrado en su ubicación; para establecer el texto de manera que quede justificado a la izquierda (con lo que es más fácil trabajar), agregue el argumento adj = c (0, NA).

    rejilla (col, lty, lwd). Este comando agrega un conjunto de líneas de cuadrícula a la gráfica usando el color, el tipo de línea y el ancho de línea definidos por “col”, “lty” y “lwd”, respectivamente.

    Aquí un ejemplo de una figura en la que mostramos cómo varían el diámetro y la masa en función del tipo de M&Ms, agregamos una leyenda, agregamos una cuadrícula y agregamos algún texto que identifique la fuente de los datos. Tenga en cuenta el uso de las funciones max y min para identificar los límites necesarios para mostrar los resultados de todos los datos.

    # determinar valores mínimos y máximos para diámetro y masa para que podamos

    # establecer límites para el eje x y el eje y que permitirán trazar todos los datos

    xmax = max (psmm_data$diámetro)

    xmin = min (psmm_data$diámetro)

    ymax = max (psmm_data$masa)

    ymin = min (psmm_data$masa)

    # crear la gráfica inicial usando datos para valores simples de M&Ms, xlim e ylim

    # asegurar que la ventana de trazado permitirá trazar todos los datos

    plot (x = psmm_data$diameter [plain_id], y = psmm_data$mass [plain_id], xlab = “diámetro de M&Ms”, ylab = “masa de M&Ms”, main = “Diámetro y Masa de M&Ms”, pch = 19, cex = 0.65, col = “rojo”, xlim = c (xmin, xmax), ylim = c (ymin, ymax))

    # agregar los datos para las M&Ms de maní y mantequilla de maní usando puntos ()

    puntos (x = psmm_data$diámetro [peanut_id], y = psmm_data$masa [peanut_id], pch = 18, col = “marrón”, cex = 0.65)

    puntos (x = psmm_data$diámetro [pb_id], y = psmm_data$masa [pb_id], pch = 17, col = “azul”, cex = 0.65)

    # agregar una leyenda, ceñir y texto explicativo

    leyenda (x = “topleft”, legend = c (“llano”, “cacahuete”, “mantequilla de maní”), col = c (“rojo”, “marrón”, “azul”), pch = c (19, 18, 17), bty = “n”)

    rejilla (col = “gris”)

    texto (x = 16.5, y = 1, label = “data from University of Puget Sound Data Hoard”, cex = 0.5)

    clipboard_e495487a235081ca9983d0c1c4514a8ed.png
    Figura\(\PageIndex{4}\): Ejemplo de una gráfica de dispersión más informativa.

    Nuestra nueva trama muestra que las M&Ms individuales están razonablemente bien separadas entre sí en el espacio creado por las variables diámetro y masa, aunque algunas M&Ms invaden el espacio ocupado por otros tipos de M&Ms. También vemos que la distribución de M&Ms lisos es mucho más compacta que para M&Ms de maní y mantequilla de maní, lo cual tiene sentido dada la probable variabilidad en el tamaño de los cacahuetes individuales y la consistencia más suave de la mantequilla de maní.


    This page titled 3.3: Creación de trazados desde cero en R usando gráficos base is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by David Harvey.