On Thursday 16 October 2003 10:03, Stefán Hrafn Jónsson wrote: > Dear R community. > > I have two problems with figures. First deals with short vector on the > x-axis and the second with two-panel barchart. > 1) For demonstration I create the following pseudo data for three years, > 2001:2003. The indicated plot looks fine except for the number of tick > marks on the x-axis. I get seq(2001,2003,0.5). I want three and only three > tick marks to indicate we have measure once a year not two times each > year. (Having year 2001.5 is not that nice anyway). I tried > as.factor(2001:2003) but this did not do what I want. I have considered > having no labels and plot the year with text(y=-b,x=(2001,2002,2003), > (2001:2003) ) -b being some value less than 0. A simpler version is > preferred.
You can suppress the axes during the first plot() call and then construct them manually: ##--------------- demo1 <- matrix(nrow=3, ncol =2, log(c(7,3,2,4,5,6))/log(7) , dimnames =list(as.character(2001:2003), c("Group A","Group B")) ) par(lab=c(3, 6,7) ,las=1 ) plot(x = (2001:2003), y = demo1[,1]*100, type = "l", lwd=3,ylim=c(0,100), xlab = "" , ylab="%", axes = FALSE, frame.plot = TRUE) axis(2) axis(1, at = 2001:2003) lines(x=(2001:2003), y=demo1[,2]*100, lwd=3, xlab = "Year" ) ##----------------- A slightly better approach (not for your problem, but for what you are trying to do) would be to use matplot instead: ##---------------- matplot(x = 2001:2003, demo1 * 100, type = "l", lwd=3, ylim = c(0, 100), xlab = "", ylab="%", axes = FALSE, frame.plot = TRUE) axis(2) axis(1, at = 2001:2003) ##---------------- > 2) For the second problem I want to use the same data but create a > barchart with two bars (Group A and group B) for 2001, same two groups for > 2002 and same two for 2003. Group A would have blue bars and Group B red > bars. > Would I use barchart() or panel.barchart()? Looking in help(barchart) I > find that I need to define a formula. What would the x, y and g1 be in my > case? barchart() is the trellis/lattice function for drawing barcharts, the corresponding base function is barplot. In this case, what you want should be doable with barplot(t(demo1), beside = TRUE) HTH, Deepayan ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help