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.

ggplot2 Etiquetas faltantes en el eje y

Buenos días, tengo un pequeño problema con mi gráfico ggplot.

Por alguna razón, que no puedo ver en este momento, los ticks y los números del eje y no aparecen. Quizás me falte algo obvio aquí o sea algo en mi configuración.
El conjunto de datos toothgrowth no se ajusta realmente al gráfico, pero aún se puede ver el problema (normalmente se incluye facet_wrap, pero no funciona con este conjunto de datos).

“`{r}
library(tidyverse)
library(ggbeeswarm)
library(gghalves)
library(tidyr)
library(ggplot2)
library(ggpubr)

theme_set(theme_bw(16))

data <- ToothGrowth

a<- ggplot(data, aes(x=supp, y=len)) + geom_half_boxplot( data = data %>% filter(supp==”OJ”),
aes(x = supp, y = len, fill=supp), outlier.color = NA) +
scale_fill_manual(values=c(“#F2F2F2”, “#999999″))+

geom_half_boxplot(
data = data %>% filter(supp==”VC”),
aes(x = supp, y = len, fill=supp), side = “r”, outlier.color = NA) +

geom_line(aes(group=supp, colour = supp), position = position_dodge(0.2), alpha = 0.3) +
geom_point(aes(group=supp, colour = supp),size=1,shape=21, position = position_dodge(0.2)) +
scale_color_manual(values=c(“chartreuse3”, “yellow2”,
“firebrick3”))+

facet_wrap(~ supp)+

theme(

strip.background = element_blank(),

strip.text.x = element_blank())+

theme(plot.margin=unit(c(0,0,0,0),”cm”))+
scale_y_discrete(name =”Name”)+
theme(text = element_text(size=11))+
theme(legend.position = “none”)

a
“`

Plot

Sería genial si alguien pudiera ver el problema; ya estoy quedándome ciego. ¡Muchas gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en scale_y_discrete, que se utiliza para establecer la etiqueta del eje y. Como la columna len en el conjunto de datos ToothGrowth es continua, en su lugar se debería usar scale_y_continuous. Cambiar scale_y_discrete(name ="Name") + por scale_y_continuous(name = "Length") + debería solucionar el problema de que no se muestren los ticks y números del eje y.

    El código corregido se vería así:

    “`{r}
    a <- ggplot(data, aes(x=supp, y=len)) + geom_half_boxplot( data = data %>% filter(supp==”OJ”),
    aes(x = supp, y = len, fill=supp), outlier.color = NA) +
    scale_fill_manual(values=c(“#F2F2F2”, “#999999″))+

    geom_half_boxplot(
    data = data %>% filter(supp==”VC”),
    aes(x = supp, y = len, fill=supp), side = “r”, outlier.color = NA) +

    geom_line(aes(group=supp, colour = supp), position = position_dodge(0.2), alpha = 0.3) +
    geom_point(aes(group=supp, colour = supp),size=1,shape=21, position = position_dodge(0.2)) +
    scale_color_manual(values=c(“chartreuse3”, “yellow2”,
    “firebrick3″))+
    # facet_wrap(~ supp)+
    # theme(
    # strip.background = element_blank(),
    # strip.text.x = element_blank())+
    theme(plot.margin=unit(c(0,0,0,0),”cm”))+
    scale_y_continuous(name=”Length”)+
    theme(text = element_text(size=11))+
    theme(legend.position = “none”)

    a
    “`

Comments are closed.