*Marc Schwartz ,* ** Method2 is what i need, and they are good answers. A little more question is how to add the legend to the plot? legend() may do it,but i fail to add them. Thanks again.
---------------------------- with kind regards zhijie zhang On 9/29/06, Marc Schwartz (via MN) <[EMAIL PROTECTED]> wrote: > > On Thu, 2006-09-28 at 23:55 +0800, zhijie zhang wrote: > > Dear friends, > > I met a problem on plotting. > > My dataset is : > > year MHBC LHBC MHRC LURC > > 1993 11.75 4.50 0.43 0.46 > > 1994 7.25 1.25 0.35 0.51 > > 1995 8.67 2.17 0.54 0.44 > > 1996 2.67 1.33 0.78 0.47 > > 1997 3.42 4.92 0.69 0.48 > > 1998 1.92 3.08 0.72 0.54 > > 1999 2.33 2.58 0.74 0.41 > > 2000 5.75 4.50 0.45 0.50 > > 2001 3.75 4.42 0.52 0.47 > > 2002 2.33 1.83 0.58 0.45 > > 2003 0.25 2.83 0.50 0.39 > > I want to get a plot -line with scatters, the requirement is : > > x-axis is year; > > two y-axis: > > y1 corresponds to MHBC and LHBC; > > y2 corresponds to MHRC and LURC; > > hope to use different symbols to differentiate the MHBC,LHBC,MHRC > and LURC. > > > > The following is my program, but very bad ,: > > *plot(a$year,a$MHBC,type='b') #line1 > > par(new=T) > > plot(a$year,a$LHBC,type='b') #line2 > > par(new=T) > > plot(a$year,a$MHRC,type='b') #line3 > > par(new=T) > > plot(a$year,a$LURC,type='b') #line4 > > axis(4, at=pretty(range(a$MHRC)))* > > In the figure, the labels and scales of X-axis are vague, the scale of > > y-axis is not very good. > > The better figure should be like the line1 and 2 are in the upper, and > line3 > > and 4 are in the bottom. > > Any suggestion are welcome! > > It's not entirely clear to me what you want, so let me offer three > possibilities. > > > 1. Do all four lines in a single plot with a common y axis: > > matplot(a$year, a[, -1], type = "o", pch = 15:18) > > > > 2. Do all four lines in a single plot with the first two having a > separate left hand y axis and the second two having a separate right > hand y axis: > > # Draw the first pair of lines > matplot(a$year, a[, 2:3], type = "o", pch = c(19, 20), > lty = "solid", ann = FALSE) > > # Get the current plot region boundaries > usr <- par("usr") > > # Get the range of the second set of columns > range.y2 <- range(a[, 4:5]) > > # Change the plot region y axis range for the second > # set of columns. Extend them by 4% as per the default > par(usr = c(usr[1], usr[2], > range.y2[1] * 0.96 , range.y2[2] * 1.04)) > > # Add the second pair of lines > matlines(a$year, a[, 4:5], type = "o", pch = c(15, 18), > lty = "dashed", col = c("blue", "green")) > > # Add the second y axis > axis(4) > > > > 3. Do the first two lines in an upper plot and the second two lines in a > lower plot, each has its own y axis range: > > # Set plot region to have two rows > par(mfrow = c(2, 1)) > > # Adjust the plot margins > par(mar = c(2, 5, 2, 2)) > > # Draw the first pair of lines > matplot(a$year, a[, 2:3], type = "o", pch = c(19, 20), > lty = "solid", ylab = "First Pair") > > > par(mar = c(3, 5, 2, 2)) > > # Add the second pair of lines > matplot(a$year, a[, 4:5], type = "o", pch = c(15, 18), > lty = "dashed", col = c("blue", "green"), > ylab = "Second Pair") > > > > See ?matplot, ?par and ?points for more information. > > HTH, > > Marc Schwartz > > > [[alternative HTML version deleted]] ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.