Necesito ggplot scale_x_log10 () para darme números negativos y positivos como salida

Genero un histograma fino aquí con números positivos y negativos.

x <- rnorm(5000,0,1000)
library(ggplot2)
df <- data.frame(x)
ggplot(df, aes(x = x)) + geom_histogram()

Lo que quiero es tener un eje x registrado. Cuando hago esto solo para números positivos con scale_x_log10 (), funciona de maravilla. Pero aquí no lo hace y tampoco elimina mis números negativos y los agrega a los números positivos.

ggplot(df, aes(x = x)) + geom_histogram() + scale_x_log10()

Todo lo que realmente quiero es que los ticks y el espacio entre los ticks sigan el patrón de registro y que cada lado de 0 en el eje x sean imágenes especulares entre sí, pero parece que no puedo entender eso.

Respuestas a la pregunta(1)

Su respuesta a la pregunta