Discussion:
[R-es] Cambiar la escala del eje x
José Trujillo Carmona
2018-08-30 12:22:10 UTC
Permalink
Estimados amigos
ls.str(pat="T0.5")
T0.5 : 'zoo' series from 2017-11-08 23:00:00 to 2017-11-15 06:59:00
  Data: num [1:9120, 1:3] 55 49.8 51 50.1 36.5 ...
  Index:  POSIXct[1:9120], format: "2017-11-08 23:00:00" "2017-11-08
23:01:00" "2017-11-08 23:02:00" "2017-11-08 23:03:00" "2017-11-08
23:04:00" "2017-11-08 23:05:00" ...
T0.5$Difer[1:2]
2017-11-08 23:00:00 2017-11-08 23:01:00
               0.10                0.72

Pero el problema que tengo es que me pone la escala del eje en segundos.
index(T0.5$Difer[1:2])
[1] "2017-11-08 23:00:00 CET" "2017-11-08 23:01:00 CET"

Es decir, 24 horas son 86400 unidades del eje.

Preferiría que la escala del eje x del acf y del pacf fuesen o bien los
retardos entre observaciones (1, 2, 3, ...) o en todo caso en minutos,
horas, ...

¿Cómo se cambia la escala del eje? No los extremos del mismo (opción
xlim) sino la escala.

Muchas gracias de antemano.

Saludos.
Carlos Ortega
2018-08-30 16:42:38 UTC
Permalink
Hola,

Esto creo que te puede ayudar:

https://stackoverflow.com/questions/8054373/use-hours-on-the-x-axis-when-plotting-with-zoo-in-r

Saludos,
Carlos Ortega
www.qualityexcellence.es
Post by José Trujillo Carmona
Estimados amigos
ls.str(pat="T0.5")
T0.5 : 'zoo' series from 2017-11-08 23:00:00 to 2017-11-15 06:59:00
Data: num [1:9120, 1:3] 55 49.8 51 50.1 36.5 ...
Index: POSIXct[1:9120], format: "2017-11-08 23:00:00" "2017-11-08
23:01:00" "2017-11-08 23:02:00" "2017-11-08 23:03:00" "2017-11-08 23:04:00"
"2017-11-08 23:05:00" ...
T0.5$Difer[1:2]
2017-11-08 23:00:00 2017-11-08 23:01:00
0.10 0.72
Pero el problema que tengo es que me pone la escala del eje en segundos.
index(T0.5$Difer[1:2])
[1] "2017-11-08 23:00:00 CET" "2017-11-08 23:01:00 CET"
Es decir, 24 horas son 86400 unidades del eje.
Preferiría que la escala del eje x del acf y del pacf fuesen o bien los
retardos entre observaciones (1, 2, 3, ...) o en todo caso en minutos,
horas, ...
¿Cómo se cambia la escala del eje? No los extremos del mismo (opción xlim)
sino la escala.
Muchas gracias de antemano.
Saludos.
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
José Trujillo Carmona
2018-08-30 18:17:27 UTC
Permalink
Gracias Carlos por tu ayuda. Pero no vale.

Para el caso de la función plot de una serie temporal, el caso que
remites, hay incluso una solución mejor en la ayuda de la función
axis.POSIXct del paquete graphics y hasta un paquete específico
(timeSeries) que resuelve el problema de poner la escala X en las
unidades que se desee.

Pero estas mismas instrucciones aplicadas a las funciones acf y pacf dan
error.

Concretamente para que axis.POSICXct funcione, la función inicial de
dibujo debe dejar limpio el eje x, para que después axis.POSICXct la
añada el eje. Pero ni acf ni pacf aceptan la opción xaxt="n".

Y no he encontrado otra forma de hacerlo. Por otra parte también habría
que extraer la secuencia de tiempos de la función acf y pacf. Todo
bastante complicadito.

Esperaba que alguien lo hubiese hecho anteriormente y me allanase un
poco el camino. Pero veo que tendré que currarmelo solito.

Gracias de todos modos.
Post by Carlos Ortega
Hola,
https://stackoverflow.com/questions/8054373/use-hours-on-the-x-axis-when-plotting-with-zoo-in-r
Saludos,
Carlos Ortega
www.qualityexcellence.es <http://www.qualityexcellence.es>
El 30 de agosto de 2018, 14:22, José Trujillo Carmona
Estimados amigos
ls.str(pat="T0.5")
T0.5 : 'zoo' series from 2017-11-08 23:00:00 to 2017-11-15 06:59:00
  Data: num [1:9120, 1:3] 55 49.8 51 50.1 36.5 ...
  Index:  POSIXct[1:9120], format: "2017-11-08 23:00:00"
"2017-11-08 23:01:00" "2017-11-08 23:02:00" "2017-11-08 23:03:00"
"2017-11-08 23:04:00" "2017-11-08 23:05:00" ...
T0.5$Difer[1:2]
2017-11-08 23:00:00 2017-11-08 23:01:00
               0.10                0.72
Pero el problema que tengo es que me pone la escala del eje en segundos.
index(T0.5$Difer[1:2])
[1] "2017-11-08 23:00:00 CET" "2017-11-08 23:01:00 CET"
Es decir, 24 horas son 86400 unidades del eje.
Preferiría que la escala del eje x del acf y del pacf fuesen o
bien los retardos entre observaciones (1, 2, 3, ...) o en todo
caso en minutos, horas, ...
¿Cómo se cambia la escala del eje? No los extremos del mismo
(opción xlim) sino la escala.
Muchas gracias de antemano.
Saludos.
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
<https://stat.ethz.ch/mailman/listinfo/r-help-es>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es <http://www.qualityexcellence.es>
[[alternative HTML version deleted]]
José Trujillo Carmona
2018-09-02 08:27:57 UTC
Permalink
Bueno, la solución era un poco tonta. Me contesto para que conste en el
archivo de la lista.

La ayuda de la función acf ya especifica: "The lag is returned and
plotted in units of time, and not numbers of observations."

Pero eso solo puede hacerlo si la serie es un objeto de de clase zoo,
ts, timeSeries, etc... Es decir, si la función index(objeto) puede
extraer tal fecha.

La solución es tan tonta como:

Data.ts<-as.data.frame(objeto)

Y al pasar a tener la estructura data.frame se pierden las fechas.
Incluso aunque se complete la instrucción con un añadido del tipo:

rownames(Data.ts)<-index(objeto)

La función index no opera sobre Data.ts y en el eje x se representan los
retardos como yo pretendía.

Saludos.
Post by José Trujillo Carmona
Gracias Carlos por tu ayuda. Pero no vale.
Para el caso de la función plot de una serie temporal, el caso que
remites, hay incluso una solución mejor en la ayuda de la función
axis.POSIXct del paquete graphics y hasta un paquete específico
(timeSeries) que resuelve el problema de poner la escala X en las
unidades que se desee.
Pero estas mismas instrucciones aplicadas a las funciones acf y pacf dan
error.
Concretamente para que axis.POSICXct funcione, la función inicial de
dibujo debe dejar limpio el eje x, para que después axis.POSICXct la
añada el eje. Pero ni acf ni pacf aceptan la opción xaxt="n".
Y no he encontrado otra forma de hacerlo. Por otra parte también habría
que extraer la secuencia de tiempos de la función acf y pacf. Todo
bastante complicadito.
Esperaba que alguien lo hubiese hecho anteriormente y me allanase un
poco el camino. Pero veo que tendré que currarmelo solito.
Gracias de todos modos.
Post by Carlos Ortega
Hola,
https://stackoverflow.com/questions/8054373/use-hours-on-the-x-axis-when-plotting-with-zoo-in-r
Saludos,
Carlos Ortega
www.qualityexcellence.es <http://www.qualityexcellence.es>
El 30 de agosto de 2018, 14:22, José Trujillo Carmona
Estimados amigos
ls.str(pat="T0.5")
T0.5 : 'zoo' series from 2017-11-08 23:00:00 to 2017-11-15 06:59:00
  Data: num [1:9120, 1:3] 55 49.8 51 50.1 36.5 ...
  Index:  POSIXct[1:9120], format: "2017-11-08 23:00:00"
"2017-11-08 23:01:00" "2017-11-08 23:02:00" "2017-11-08 23:03:00"
"2017-11-08 23:04:00" "2017-11-08 23:05:00" ...
T0.5$Difer[1:2]
2017-11-08 23:00:00 2017-11-08 23:01:00
               0.10                0.72
Pero el problema que tengo es que me pone la escala del eje en segundos.
index(T0.5$Difer[1:2])
[1] "2017-11-08 23:00:00 CET" "2017-11-08 23:01:00 CET"
Es decir, 24 horas son 86400 unidades del eje.
Preferiría que la escala del eje x del acf y del pacf fuesen o
bien los retardos entre observaciones (1, 2, 3, ...) o en todo
caso en minutos, horas, ...
¿Cómo se cambia la escala del eje? No los extremos del mismo
(opción xlim) sino la escala.
Muchas gracias de antemano.
Saludos.
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
<https://stat.ethz.ch/mailman/listinfo/r-help-es>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es <http://www.qualityexcellence.es>
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
Loading...