es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Representar un polígono coloreado en ggplot2

Estoy utilizando el paquete statspat porque estoy trabajando en patrones espaciales.
Me gustaría hacerlo en ggplot y con colores en lugar de números (porque no es muy legible),
el siguiente gráfico, producido con la función plot.quadratest: Polygone

Los números que me interesan para la intensidad de los colores son aquellos en la parte inferior de cada caja.
El objeto de prueba contiene los siguientes datos: Test object.
He consultado la ayuda de la función, así como el código de la función, pero aún no puedo manejarlo.
Idealmente, me gustaría que mi figura final se vea así (quizás no con los mismos colores, jaja): Final object

Gracias de antemano por tu ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear un gráfico similar en ggplot con colores en lugar de números, podemos seguir los siguientes pasos:

    1. Convertir los datos del objeto “test” a un formato de marco de datos y crear una columna para los identificadores de las cajas.
    2. Calcular los valores de color basados en los números en la parte inferior de cada caja usando una escala de colores.
    3. Utilizar la función geom_polygon de ggplot para crear un polígono para cada caja y colorear los polígonos en función de los valores de color.

    Aquí tienes un código de ejemplo para lograr esto:

    “`{r}
    library(statspat)
    library(ggplot2)

    Convertir los datos a un marco de datos

    test_df <- as.data.frame(as.quad.test(object))
    test_df$box_id <- 1:nrow(test_df)

    Calcular los valores de color usando una escala de colores

    color_scale <- scale_fill_gradient(low = “white”, high = “red”)
    color_values <- colorScale(test_df$counts, color_scale)

    Crear el gráfico utilizando ggplot y geom_polygon

    ggplot(test_df, aes(x = x, y = y, group = box_id, fill = color_values)) +
    geom_polygon() +
    coord_equal() +
    theme_void() +
    scale_fill_gradient(low = “white”, high = “red”, name = “Intensidad”)
    “`

    Esto generará un gráfico similar al que proporcionaste como el objeto “Final” anteriormente. Puedes ajustar la escala de colores y otros aspectos del gráfico a tu gusto.

Comments are closed.