Now we're getting somewhere. I suspect that each Excel sheet looks something like this:
Year Tonga Samoa Fiji 2008 21.2 32.0 18.7 ... 2017 23.7 31.9 19.3 # in the above there are three columns (countries) and ten rows # import this sheet as "MPG3" nrows<-nrow(MPG3) # nrows equals 10 ncols<-ncol(MPG3) # ncols equals 3 for(i in 1:ncols) plot(seq(1:nrows,MPG3[,i],type="l",xlab="Distance", ylab="MPG",main=names(MPG3)[i],xaxt="n") axis(1,at=1:nrows,labels=MPG3$Year) I probably have the structure of the imported data frame wrong, but I think you can work that out. Jim On Wed, Nov 21, 2018 at 4:08 PM Subhamitra Patra <subhamitra.pa...@gmail.com> wrote: > As per your suggestion, *"you will need to adjust the number of "x" > values to match the number of "y" values. Now with the addition of the > nrow function, the code for each sheet will be* > > > *ncolumns<-ncol(mpg)* > * nrows<-nrow(mpg) * > > > *for(i in > 1:ncolumns) plot(seq(1,500,length.out=10),mpg[,i],type="l",xlab="Distance", > ylab="MPG",main=names(mpg)[i]) * > > #####The no. of rows for the columns in one sheet will be the same. In the > X-axis, I need to mention Year which is the same for all columns in a > sheet. But, the starting year varies from one sheet to other. > > *Sir, please suggest in case of any mistakes.* > > Second, I will definitely consider your suggestions about the division of > sample by similar characteristics so that it can be easier to show in > graphical. Thank you very much, sir, for such creative and wonderful > suggestions. > > > > [image: Mailtrack] > <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> > Sender > notified by > Mailtrack > <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> > 11/21/18, > 10:35:03 AM > > On Wed, Nov 21, 2018 at 9:40 AM Jim Lemon <drjimle...@gmail.com> wrote: > >> For your first question, yes, you will need to adjust the number of "x" >> values to match the number of "y" values. You can use the "nrow" function >> to get that number. I don't really know what the abscissa scale is on your >> plots, I just made up the data I used. >> >> If you are comparing countries, you may want to divide the results into >> countries of different characteristics, perhaps GDP or similar. Otherwise >> you will end up with a quite large PDF page. This is okay if you are >> viewing it electronically, but will present a challenge in hard copy. >> >> Jim >> >> On Wed, Nov 21, 2018 at 2:51 PM Subhamitra Patra < >> subhamitra.pa...@gmail.com> wrote: >> >>> Hello Sir, >>> >>> Thank you very much. I will try it out and will let you the result. >>> >>> The no. of rows varies per sheet by a different number of observations. >>> Due to different no. of rows or observations, I separated the columns in >>> different sheets. >>> >>> *Will a different number of rows create a problem for appending all >>> plots?* >>> >>> Concerning your last suggestion "*This seems like a lot of plots, and I >>> suspect that you could work out a better way to display all this >>> information.*", I am doing a multi-country study and obtained results >>> for each country. I would summarize the final result at the end. But, for >>> displaying the information for each country, I thought the plot is the best >>> way to give a supplementary result on each country. Sir, in this context, I >>> would like to take your suggestion that Is the way what I am doing, right >>> to proceed? If any alternative way is available, please suggest me. >>> >>> Thank you very much, Sir, for your kind help and suggestions. >>> >>> [image: Mailtrack] >>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> >>> Sender >>> notified by >>> Mailtrack >>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> >>> 11/21/18, >>> 9:12:14 AM >>> >>> On Wed, Nov 21, 2018 at 8:18 AM Jim Lemon <drjimle...@gmail.com> wrote: >>> >>>> I assume that you are importing the Excel sheets separately. When you >>>> import a sheet, you can get the number of columns with this: >>>> >>>> ncol(<name of data frame>) >>>> >>>> Using the data frame "mpg" that I created: >>>> >>>> ncolumns<-ncol(mpg) >>>> ncolumns >>>> [1] 38 >>>> >>>> You can then substitute "ncolumns" each time you import another sheet. >>>> How you want to deal with the varying numbers of columns you will get is >>>> another matter. One way is to work out the total number of plots you want >>>> and put them all onto one PDF page. Say you have 50 plots overall. You >>>> could start a very big PDF page: >>>> >>>> pdf("allplots.pdf",width=30,height=15) >>>> par(mfrow=c(5,10)) >>>> # import your first sheet here (38 columns) >>>> ncolumns<-ncol(mpg) >>>> for(i in 1:ncolumns) >>>> plot(seq(1,500,length.out=10),mpg[,i],type="l",xlab="Distance", >>>> ylab="MPG",main=names(mpg)[i])# import your second sheet here, say >>>> 10 columns >>>> # import your second sheet here, (10 columns) >>>> ncolumns<-ncol(mpg1) >>>> for(i in 1:ncolumns) >>>> plot(seq(1,500,length.out=10),mpg1[,i],type="l",xlab="Distance", >>>> ylab="MPG",main=names(mpg)[i])# import your third sheet here, say 2 >>>> columns >>>> # import your second sheet here, (2 columns) >>>> ncolumns<-ncol(mpg2) >>>> for(i in 1:ncolumns) >>>> plot(seq(1,500,length.out=10),mpg2[,i],type="l",xlab="Distance", >>>> ylab="MPG",main=names(mpg)[i]) >>>> # finish plotting >>>> dev.off() >>>> >>>> You would then have 50 plots on the PDF page. I am assuming that all of >>>> your sheets have the same number of rows and a few other things. This seems >>>> like a lot of plots, and I suspect that you could work out a better way to >>>> display all this information. >>>> >>>> Jim >>>> >>>> >>>> On Wed, Nov 21, 2018 at 1:20 PM Subhamitra Patra < >>>> subhamitra.pa...@gmail.com> wrote: >>>> >>>>> Hello Sir, >>>>> >>>>> Thanks, now I understood and will check them out. >>>>> >>>>> One more thing I want to ask that I have 1 excel file with multiple >>>>> (i.e. 12 sheets). Each sheet contains different number of columns, for >>>>> instance, 1st sheet contains 38 columns, 2nd sheet contains 10 columns, >>>>> Third 2 columns, 4th 1 column and so on. Actually, due to some missing >>>>> observations in these columns, I couldn't add them in 1 sheet. >>>>> >>>>> As you suggested the below code in the last mail, >>>>> >>>>> par(mfrow=c(4,10)) >>>>> for(i in 1:38) >>>>> plot(seq(1,500,length.out=10),mpg[,i],type="l",xlab="Distance", >>>>> ylab="MPG",main=names(mpg)[i]) >>>>> dev.off() >>>>> >>>>> Do I need to run the code separately for each sheet? >>>>> >>>>> Actually, in par (mfrow=c(4,10)), the plot for 38 columns will be >>>>> added, the space for extra 2 will remain as empty. So, I thought to add >>>>> plots for the columns from the next sheet in those emptied space. >>>>> >>>>> Is there any way that I can add plots from the next sheets of the same >>>>> excel file in the emptied space? In other words, Is there any way to >>>>> append >>>>> plots from all sheets? >>>>> >>>>> Kindly help a new R learner Sir for which I shall be always grateful >>>>> to you. >>>>> >>>>> Thank you very much for your kind help. >>>>> >>>>> >>>>> >>>>> [image: Mailtrack] >>>>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> >>>>> Sender >>>>> notified by >>>>> Mailtrack >>>>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> >>>>> 11/21/18, >>>>> 7:30:30 AM >>>>> >>>>> On Wed, Nov 21, 2018 at 7:17 AM Jim Lemon <drjimle...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hi Subhamitra, >>>>>> >>>>>> 1. Here I manufacture some data so that the example is >>>>>> "reproducible", that is anyone can run the code and get the same output >>>>>> that I do. Yes, veh1...veh38 are the names of the variables. >>>>>> >>>>>> 2. Here I join the 38 variables I created into a data frame, which I >>>>>> think is the input for your plotting routine. This names of the columns >>>>>> of >>>>>> the data frame become the names of the variables. >>>>>> >>>>>> When you say that you want the column names as the "header" (title) >>>>>> of each plot, I think if you change the plotting loop to this: >>>>>> >>>>>> pdf("mpg.pdf",width=30,height=12) >>>>>> par(mfrow=c(4,10)) >>>>>> for(i in 1:38) >>>>>> plot(seq(1,500,length.out=10),mpg[,i],type="l",xlab="Distance", >>>>>> ylab="MPG",main=names(mpg)[i]) >>>>>> dev.off() >>>>>> >>>>>> you will get what you requested. Remember that I have done this in >>>>>> base graphics, not ggplot. >>>>>> >>>>>> Jim >>>>>> >>>>>> On Wed, Nov 21, 2018 at 12:37 PM Subhamitra Patra < >>>>>> subhamitra.pa...@gmail.com> wrote: >>>>>> >>>>>>> Hello Sir, >>>>>>> >>>>>>> Thanks, I'll check them out. >>>>>>> >>>>>>> But, I am not understanding 2 points of your suggestion. >>>>>>> >>>>>>> 1. In the line,* "*for(i in 1:38) assign(paste0("veh",i),rep(sam >>>>>>> ple(10:35,1),10)+runif(10,-4,*4))", *what veh, rep(sam >>>>>>> ple(10:35,1),10)+runif(10,-4,4)) indicate? Here veh indicates >>>>>>> columns right? >>>>>>> *2. In the >>>>>>> line, >>>>>>> mpg<-data.frame(veh1,veh2,veh3,veh4,veh5,veh6,veh7,veh8,veh9,veh10,* >>>>>>> * veh11,veh12,veh13,veh14,**veh15,veh16,veh17,veh18,veh19,**veh20,* >>>>>>> * veh21,veh22,veh23,veh24,**veh25,veh26,veh27,veh28,veh29,**veh30,* >>>>>>> * veh31,veh32,veh33,veh34,**veh35,veh36,veh37,veh38) ** , *veh[i] >>>>>>> indicates column sequence, right? I need to give column names as the >>>>>>> header >>>>>>> of their respective graphs. Please suggest me How to add this? >>>>>>> >>>>>>> >>>>>>> I am very new to R and therefore asking you these queries which >>>>>>> might be simple for you. >>>>>>> >>>>>>> I expect positive help from you. >>>>>>> >>>>>>> Thanks for your kind help. >>>>>>> [image: Mailtrack] >>>>>>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> >>>>>>> Sender >>>>>>> notified by >>>>>>> Mailtrack >>>>>>> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> >>>>>>> 11/21/18, >>>>>>> 7:02:18 AM >>>>>>> >>>>>>> >>>>>>> On Wed, Nov 21, 2018 at 4:38 AM Jim Lemon <drjimle...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Subhamitra, >>>>>>>> As Bert noted, you are mixing base and grid graphics. Here is a >>>>>>>> simple >>>>>>>> way to get a plot like what you described. It will probably take >>>>>>>> more >>>>>>>> work to find what you actually do want and discover how to get it. >>>>>>>> >>>>>>>> for(i in 1:38) >>>>>>>> assign(paste0("veh",i),rep(sample(10:35,1),10)+runif(10,-4,4)) >>>>>>>> mpg<-data.frame(veh1,veh2,veh3,veh4,veh5,veh6,veh7,veh8,veh9,veh10, >>>>>>>> veh11,veh12,veh13,veh14,veh15,veh16,veh17,veh18,veh19,veh20, >>>>>>>> veh21,veh22,veh23,veh24,veh25,veh26,veh27,veh28,veh29,veh30, >>>>>>>> veh31,veh32,veh33,veh34,veh35,veh36,veh37,veh38) >>>>>>>> pdf("mpg.pdf",width=30,height=12) >>>>>>>> par(mfrow=c(4,10)) >>>>>>>> for(i in 1:38) >>>>>>>> plot(seq(1,500,length.out=10),mpg[,i],type="l",xlab="Distance", >>>>>>>> ylab=names(mpg)[i],main="MPG by distance") >>>>>>>> dev.off() >>>>>>>> >>>>>>>> Jim >>>>>>>> >>>>>>>> On Wed, Nov 21, 2018 at 5:19 AM Subhamitra Patra >>>>>>>> <subhamitra.pa...@gmail.com> wrote: >>>>>>>> > >>>>>>>> > Dear R users, >>>>>>>> > >>>>>>>> > I have one excel file with 5 sheets. The no. of columns vary for >>>>>>>> each >>>>>>>> > sheet. The 1st sheet consists of 38 columns. So, I want to plot >>>>>>>> 38 separate >>>>>>>> > line charts and arrange them in par(mfrow = c(4, 10)) order. >>>>>>>> Please suggest >>>>>>>> > me how to do this. I have tried with the following code by >>>>>>>> running a loop >>>>>>>> > inside of a sheet, but it is not working. Further, I want to run >>>>>>>> loops for >>>>>>>> > each sheet. >>>>>>>> > >>>>>>>> > par(mfrow = c(4, 10)) >>>>>>>> > loop.vector <- 1:38 >>>>>>>> > for (i in loop.vector) >>>>>>>> > x <- JJ[,i] >>>>>>>> > library(ggplot2) >>>>>>>> > library(cowplot) >>>>>>>> > plot.mpg <- ggplot(mpg, aes(x, >>>>>>>> > main = paste ("country", i), >>>>>>>> > xlab = "Scores", >>>>>>>> > xlim = c(1,500) >>>>>>>> > y = colnames[i,], colour = >>>>>>>> factor(cyl))) + >>>>>>>> > geom_line(size=2.5) >>>>>>>> > save_plot("mpg.png", plot.mpg, >>>>>>>> > base_aspect_ratio = 1.3) >>>>>>>> > >>>>>>>> > I want to give my X axis name as scores of (1,500) and Y axis as >>>>>>>> the >>>>>>>> > particular column names for all graphs. >>>>>>>> > >>>>>>>> > Please suggest. >>>>>>>> > >>>>>>>> > Thanks in advance. >>>>>>>> > >>>>>>>> > -- >>>>>>>> > *Best Regards,* >>>>>>>> > *Subhamitra Patra* >>>>>>>> > *Phd. Research Scholar* >>>>>>>> > *Department of Humanities and Social Sciences* >>>>>>>> > *Indian Institute of Technology, Kharagpur* >>>>>>>> > *INDIA* >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > [image: Mailtrack] >>>>>>>> > < >>>>>>>> https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5& >>>>>>>> > >>>>>>>> > Sender >>>>>>>> > notified by >>>>>>>> > Mailtrack >>>>>>>> > < >>>>>>>> https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5& >>>>>>>> > >>>>>>>> > 11/20/18, >>>>>>>> > 11:49:42 PM >>>>>>>> > >>>>>>>> > [[alternative HTML version deleted]] >>>>>>>> > >>>>>>>> > ______________________________________________ >>>>>>>> > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>>>>>> > 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. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Best Regards,* >>>>>>> *Subhamitra Patra* >>>>>>> *Phd. Research Scholar* >>>>>>> *Department of Humanities and Social Sciences* >>>>>>> *Indian Institute of Technology, Kharagpur* >>>>>>> *INDIA* >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> *Best Regards,* >>>>> *Subhamitra Patra* >>>>> *Phd. Research Scholar* >>>>> *Department of Humanities and Social Sciences* >>>>> *Indian Institute of Technology, Kharagpur* >>>>> *INDIA* >>>>> >>>> >>> >>> -- >>> *Best Regards,* >>> *Subhamitra Patra* >>> *Phd. Research Scholar* >>> *Department of Humanities and Social Sciences* >>> *Indian Institute of Technology, Kharagpur* >>> *INDIA* >>> >> > > -- > *Best Regards,* > *Subhamitra Patra* > *Phd. Research Scholar* > *Department of Humanities and Social Sciences* > *Indian Institute of Technology, Kharagpur* > *INDIA* > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.