r - Barplot show only specific names (dates) in x axis -


i new in using r , have issue x-axis in barplots.

some example

 t<-seq(as.date("2014-04-09"), as.date("2014-10-09"), by="days")  c<-sample(0:100,184, rep=true)  x<-data.frame(t,c)  rownames(x)<-x[,c(1)]  x<-subset(x,select=c(2))  par(las=2)  barplot(t(x)) 

as can see, date on x-axis not nice. want display dates true las=1 orientation of las=2. tried create new object dates names that, not able so. maybe there way in barplot or in making new object names.

thanks help

solution 1:

plot(t,x$c,type="h") 

edit: plot() solution works fine. if need have stacked bars in new example?

 t<-seq(as.date("2014-04-09"), as.date("2014-10-09"), by="days")  c<-sample(0:100,184, rep=true)  f<-sample(0:100,184, rep=true)  x<-data.frame(t,c,f)  rownames(x)<-x[,c(1)]  x<-subset(x,select=c(2,3))  par(las=2)  barplot(t(x)) 

welcome stackoverflow!

does want?

plot(t,x$c,type="h") 

plot

(i assume don't really want display time series barplot , example. time series, you'd type="o".)

edit: stacked barplot, can following - first plot lower parts of bars x$c, keeping enough vertical space via ylim , using thicker lines lwd=3 can see difference between colored bars:

plot(t,x$c,type="h",lwd=3,ylim=c(0,max(rowsums(x)))) 

then add upper parts of bars using lines() function. this, need specify vector of x values. since each bar vertical, use 2 copies of t. need vector of y values lower , upper end of vertical lines. lower end x$c, , upper end x$c+x$f. need intersperse both x , y vectors nas vertical lines not joined diagonal lines. find easiest create three-row matrices using rbind(), last row na. (below, use as.vector() clarity - it's not needed; lines() convert matrices vectors itself). finally, specify line thickness , color:

lines(as.vector(rbind(t,t,na)),   as.vector(rbind(x$c,x$c+x$f,na)),   lwd=3,col="gray") 

barplot stacked

a word of advice: it's not idea give data structures names conflict r functions. instance, have vector of dates t, there function t() (which transposes matrices - use one). have c, conflicts function c(). confuse both , people here. call data structures foo, bar , baz in time-honored fashion.


Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -