<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Hola,<br><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">He buscado una solución a partir de los datos originales. La alternativa de introducir una serie adicional con el primer día del mes sobre el data.frame original, tiene el problema que en la serie original las fechas no coinciden con esos primeros días del mes.<br><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Aunque hay que darle unas cuantas vueltas para construir las etiquetas de los ejes, evitando la repetición del mes o del año, al final creo que queda como querías...<br><br>#---------------------------<br>datIn <- read.csv("Libro1.csv", header=T, sep=";", dec=",")<br><br>library(lubridate)<br>datIn$xlabels <- as.Date(dmy(datIn$fecha), format="%Y-%m-%d")<br>datIn$mes <- month(dmy(datIn$fecha), label=T, abbr=T)<br>datIn$anio <- year(dmy(datIn$fecha))<br>datIn$mesanio <- paste(datIn$mes,"-",datIn$anio,sep="")<br><br>for(i in 1:length(datIn$mes)) {<br>  if(i>1) {<br>    if(datIn$mes[i]==datIn$mes[i-1]) { <br>       datIn$mesx[i] <- c("") <br>    } else {<br>     mestmp <- as.character(datIn$mes[i]) <br>     datIn$mesx[i] <-mestmp<br>    }<br>  } else { datIn$mesx[i] <- as.character(datIn$mes[i]) }<br>}<br>for(i in 1:length(datIn$anio)) {<br>  if(i>1) {<br>    if(datIn$anio[i]==datIn$anio[i-1]) { <br>      datIn$aniox[i] <- c("") <br>    } else {<br>      aniotmp <- datIn$anio[i] <br>      datIn$aniox[i] <-aniotmp<br>    }<br>  } else { datIn$aniox[i] <- datIn$anio[i] }<br>}<br><br>for(i in 1:length(datIn$mesx)) {<br>  if(nchar(datIn$mesx[i])>0 & nchar(datIn$aniox[i])>0 ) {<br>    datIn$labx[i] <- paste(datIn$mesx[i],"-",datIn$aniox[i], sep="")<br>  }<br>  if(nchar(datIn$mesx[i])>0 & nchar(datIn$aniox[i])==0) {<br>    datIn$labx[i] <- datIn$mesx[i]<br>  } <br>  if(nchar(datIn$mesx[i])==0 & nchar(datIn$aniox[i])==0) { datIn$labx[i] <- c('') } <br>}<br><br>plot (<br>  datIn$xbar ~ datIn$xlabels<br>  ,ylim=c(400,660), xaxt="n", type="b", pch=19,cex=1,<br>  ,xlab="Fecha", ylab="Value"<br>  ,axes=F<br>)<br>axis.Date( <br>           1,at=datIn$xlabels[nchar(datIn$labx)>0],format="%b-%y"<br>           ,labels=datIn$labx[nchar(datIn$labx)>0]<br>           ,las=1, cex.axis=0.8, col.axis="blue", font.axis=2<br>         )<br><br>axis(2, col.axis="blue", las=1, font.axis=2)<br>box()<br>arrows(<br>  x0=datIn$xlabels,y0=datIn$lci<br>  ,x1=datIn$xlabels,y1=datIn$lcs<br>  ,angle=90,code=3,length=.1<br>)<br><br><br><br>#-----------------------<br><br><img alt="Imágenes integradas 1" src="cid:ii_148574f30620846a" height="316" width="544"><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 8 de septiembre de 2014, 21:12, Carlos Fernández-Delgado <span dir="ltr"><<a href="mailto:ba1fedec@uco.es" target="_blank">ba1fedec@uco.es</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hola de nuevo, acabo de encontrar la solución. He creado una variable ficticia con los días 1 de cada mes en la secuencia temporal que quería y después he actuado de la siguiente manera<div><br><div><div>attach(Libro1)</div><div>plot (xbar~as.Date(fecha,"%d/%m/%y"), type="b", pch=19,cex=2,xaxt="n")</div><div>xlabels<-strptime(ofeje, format = "%d/%m/%y")</div><div>axis.Date(1, at=xlabels[xlabels$mday==1], format="%b-%y")</div><div>
<div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="text-align:start;text-indent:0px;word-wrap:break-word"><div style="text-align:start;text-indent:0px;word-wrap:break-word"><div style="text-align:-webkit-auto;text-indent:0px;word-wrap:break-word"><div style="text-align:-webkit-auto;text-indent:0px;word-wrap:break-word"><span style="border-collapse:separate;border-spacing:0px"><div style="text-align:start;text-indent:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);font-family:Times;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-transform:none;white-space:normal;word-spacing:0px"><br></div><br></div>El resultado se plasma en la grafica adjunta, por si alguien está interesado también envío la base de datos con la variable ficticia. Muchas gracias y disculpas por las molestias.</span></div><div style="text-align:-webkit-auto;text-indent:0px;word-wrap:break-word"><span style="border-collapse:separate;border-spacing:0px">Un cordial saludo.</span></div><span class="HOEnZb"><font color="#888888"><div style="text-align:-webkit-auto;text-indent:0px;word-wrap:break-word"><span style="border-collapse:separate;border-spacing:0px">Carlos<br><br></span></div></font></span></div></div></div></div>
</div>
<br><div><span class=""><div>El 08/09/2014, a las 00:05, Carlos Ortega <<a href="mailto:cof@qualityexcellence.es" target="_blank">cof@qualityexcellence.es</a>> escribió:</div><br></span><div><div class="h5"><div><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Hola,<br><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Una forma de hacerlo es:<br></div><div class="gmail_default" style="font-family:verdana,sans-serif">1. incluyes un parámetro en "plot(..., axes=F)" y así indicas que no quieres pintar automáticamente los ejes.<br></div><div class="gmail_default" style="font-family:verdana,sans-serif">2. Y ahora construyes el eje "x" con la función "axis()".<br></div><div class="gmail_default" style="font-family:verdana,sans-serif">3. Dentro de axis(), dirás cada cuánto quieres pintar una marca (parámetro "at") y qué quieres incluir en la marca (parámetro "label").<br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br>Para ver un ejemplo, mira el ejemplo que aparece en la ayuda de la función "axis()".<br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Saludos,<br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Carlos Ortega<br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><a href="http://www.qualityexcellence.es/" target="_blank">www.qualityexcellence.es</a><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 7 de septiembre de 2014, 20:46, Carlos Fernández-Delgado <span dir="ltr"><<a href="mailto:ba1fedec@uco.es" target="_blank">ba1fedec@uco.es</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Estimada Comunidad, solicito vuestra ayuda en un tema quizás un poco tonto, pero no logro dar con la tecla.<div>Estoy intentando hacer una gráfica de la evolución temporal de una variable (xbar) a lo largo del tiempo.</div><div>La secuencia que he hecho es la siguiente:</div><div><div>attach(Libro1)</div><div>plot (xbar~as.Date(fechas,"%d/%m/%y"), ylim=c(400,650), type="b", pch=19,cex=1)</div><div>arrows(x0=as.Date(fechas,"%d/%m/%y"),y0=lci,x1=as.Date(fechas,"%d/%m/%y"),y1=lcs,angle=90,code=3,length=.1)</div><div><br></div><div>El problema es que la gráfica emitida por R me saca en abscisas una serie de meses que me los coloca por defecto (ver gráfica adjunta) y lo que yo quiero es poner marcas mensuales desde agosto de 2013 hasta mayo 2014, incluido el cambio de año (ya sea dic’13 o ene’14), pero por mucho que lo intento no me sale.</div><div><br></div><div>¿Podéis ayudarme?.</div><div>Muchas gracias por adelantado y un cordial saludo</div><span><font color="#888888"><div><br></div><div>Carlos</div><div><br></div><div><br></div><div>
<div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="text-align:start;text-indent:0px;word-wrap:break-word"><div style="text-align:start;text-indent:0px;word-wrap:break-word"><div style="text-align:-webkit-auto;text-indent:0px;word-wrap:break-word"><div style="text-align:-webkit-auto;text-indent:0px;word-wrap:break-word"><span style="border-collapse:separate;border-spacing:0px"><div style="text-align:start;text-indent:0px;word-wrap:break-word"><div style="font-family:Times;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-transform:none;white-space:normal;word-spacing:0px"><br></div><br></div><br><br></span></div></div></div></div></div>
</div>
</font></span></div></div><br><div style="word-wrap:break-word"><div></div></div><br><div style="word-wrap:break-word"><div></div></div><br>_______________________________________________<br>
R-help-es mailing list<br>
<a href="mailto:R-help-es@r-project.org" target="_blank">R-help-es@r-project.org</a><br>
<a href="https://stat.ethz.ch/mailman/listinfo/r-help-es" target="_blank">https://stat.ethz.ch/mailman/listinfo/r-help-es</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><span style="font-family:verdana,sans-serif">Saludos,</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif">Carlos Ortega</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif"><a href="http://www.qualityexcellence.es/" target="_blank">www.qualityexcellence.es</a></span>
</div>
</div></div></div></div></div></div></div><br><div style="word-wrap:break-word"><div><div></div></div></div><br><div style="word-wrap:break-word"><div><div></div></div></div><br></blockquote></div><br><br clear="all"><br>-- <br><span style="font-family:verdana,sans-serif">Saludos,</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif">Carlos Ortega</span><br style="font-family:verdana,sans-serif">
<span style="font-family:verdana,sans-serif"><a href="http://www.qualityexcellence.es" target="_blank">www.qualityexcellence.es</a></span>
</div>