En el eje x, tengo una gran cantidad de datos (0:700)
Cuando yo uso este :

dh <- hist(data)
barplot(dh$counts, log="y", col="white", names.arg=dh$breaks[-1])

Puedo obtener este gráfico:

hist() error: 'rompe' no abarcan todo el rango de 'datos' y barplot(, log =

Pero quiero llegar a valores más pequeños descansos.
He probado a modificar los saltos de valor pero me da un error

Error en hist.por defecto(datos, breaks = seq(5, 700, por = 10)) : algunos de los ‘datos’ no se cuentan; tal vez ‘rompe’ no abarcan todo el rango de ‘datos’


seguimiento:

Después de establecer breaks = seq(0, 700, by = 10) como la respuesta sugiere, hist() funciona bien, pero barplot() me da error:

registro de error de eje: al menos un valor de altura de + offset <= 0

¿Qué pasó?

InformationsquelleAutor AbirH | 2016-05-27

1 Comentario

  1. 2

    problema original con hist:

    Creo que se debe establecer saltos de breaks = seq(0, 700, by = 10), como usted dice en su comentario, que range(data) informes c(0, 690).

    hist.default() se informe de error, si la rotura no cubre el rango de los datos. Su configuración actual: breaks = seq(5, 700, by = 10) tenga un mínimo de 5 y máximo 695, que es un poco insuficiente en el borde izquierdo.

    Fácilmente puedo reproducir el error que vio:

    set.seed(0); x<-rexp(1000,1)
    range(x)
    # [1] 0.001700975 6.584532959
    hist(x, breaks = seq(0.002, 7.002, by = 0.5))

    Error en hist.predeterminado(x, breaks = seq(0.002, 7.002, por = 0.5)) :
    algunos ‘x’ no se cuentan; tal vez ‘rompe’ no abarcan todo el rango de ‘x’

    cuestión del seguimiento con barplot:

    registro de error de eje: al menos un valor de altura de + offset <= 0

    Puedo adivinar lo que pasó. Compruebe min(dh$counts), y creo que es 0. Usted sabe, log(0) = -INF, y usted no puede dibujarla.

    Sí tengo el valor 0. pero, ¿por qué funciona antes de que se use seq(0, 700, por = 10)?

    ¿Por qué no tienen un cheque en foo <- hist(data, plot = FALSE), y ver lo que bin células y la rompe elige? Las posibilidades son que hist() ha sabiamente elegido el tamaño de un recipiente, de modo que no 0 recuento se produce.

    Cuando intenta refinar la auto-elegido el tamaño de un recipiente, que debe ser la finalidad de la misma, no incurrir en 0. (Bueno, si no log = "y" en barplot(), entonces realmente no importa.)

    También le podría dar un truco/cheat. Usted podría hacer barplot(dh$counts + 1, log = "y", ...). Después de la adición de 1, el mínimo log valor es 0, y no hay ningún problema en absoluto! Seguramente la cuenta de valores de los cambios, pero lo más probable es que no es perceptible en su parcela para la presentación.

Dejar respuesta

Please enter your comment!
Please enter your name here