values scale_x_discrete scale_x_continuous scale_fill_manual ggplot change breaks r ggplot2 scale categorical-data r-factor

scale_x_discrete - Trazado con ggplot2: "Error: valor discreto suministrado a escala continua" en el eje y categórico



scale_x_continuous (3)

Como se menciona en los comentarios, no puede haber una escala continua en la variable del tipo de factor . Puede cambiar el factor a numeric siguiente manera, justo después de definir la variable meltDF .

meltDF$variable=as.numeric(levels(meltDF$variable))[meltDF$variable]

Luego, ejecute el comando ggplot

ggplot(meltDF[meltDF$value == 1,]) + geom_point(aes(x = MW, y = variable)) + scale_x_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200)) + scale_y_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200))

Y tendrás tu carta.

Espero que esto ayude

El siguiente código de trazado proporciona Error: Discrete value supplied to continuous scale

¿Qué tiene de malo este código? Funciona bien hasta que trato de cambiar la escala para que el error esté ahí ... Traté de encontrar soluciones a un problema similar pero no pude.

Esta es una head de mis datos:

> dput(head(df)) structure(list(`10` = c(0, 0, 0, 0, 0, 0), `33.95` = c(0, 0, 0, 0, 0, 0), `58.66` = c(0, 0, 0, 0, 0, 0), `84.42` = c(0, 0, 0, 0, 0, 0), `110.21` = c(0, 0, 0, 0, 0, 0), `134.16` = c(0, 0, 0, 0, 0, 0), `164.69` = c(0, 0, 0, 0, 0, 0), `199.1` = c(0, 0, 0, 0, 0, 0), `234.35` = c(0, 0, 0, 0, 0, 0), `257.19` = c(0, 0, 0, 0, 0, 0), `361.84` = c(0, 0, 0, 0, 0, 0), `432.74` = c(0, 0, 0, 0, 0, 0), `506.34` = c(1, 0, 0, 0, 0, 0), `581.46` = c(0, 0, 0, 0, 0, 0), `651.71` = c(0, 0, 0, 0, 0, 0), `732.59` = c(0, 0, 0, 0, 0, 1), `817.56` = c(0, 0, 0, 1, 0, 0), `896.24` = c(0, 0, 0, 0, 0, 0), `971.77` = c(0, 1, 1, 1, 0, 1), `1038.91` = c(0, 0, 0, 0, 0, 0), MW = c(3.9, 6.4, 7.4, 8.1, 9, 9.4)), .Names = c("10", "33.95", "58.66", "84.42", "110.21", "134.16", "164.69", "199.1", "234.35", "257.19", "361.84", "432.74", "506.34", "581.46", "651.71", "732.59", "817.56", "896.24", "971.77", "1038.91", "MW"), row.names = c("Merc", "Peug", "Fera", "Fiat", "Opel", "Volv" ), class = "data.frame")

El código de trazado:

## Plotting meltDF = melt(df, id.vars = ''MW'') ggplot(meltDF[meltDF$value == 1,]) + geom_point(aes(x = MW, y = variable)) + scale_x_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200)) + scale_y_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200))

Así es como se veía la trama antes de agregar escala:


En mi caso, debe convertir la columna (cree que esta columna es numérica, pero en realidad no) a numeric

geom_segment(data=tmpp, aes(x=start_pos, y=lib.complexity, xend=end_pos, yend=lib.complexity) ) # to geom_segment(data=tmpp, aes(x=as.numeric(start_pos), y=as.numeric(lib.complexity), xend=as.numeric(end_pos), yend=as.numeric(lib.complexity)) )


si x es numérico, entonces agregue scale_x_continuous() ; si x es carácter / factor, agregue scale_x_discrete() . Esto podría resolver tu problema.