Sir, in the bold portion of the below code, I have some confusion which I am mentioning below that
"ylab="MPG",main=names(MPG3)[i],*xaxt="n"*) axis(*1*,at=1:nrows,*labels=MPG3$Year*)" 1. Here, what *xaxt="n"* indicates? I think it indicates the no. of rows, right? 2. 1 in the 2nd line represents the no. of graphs. Let suppose, 38 plots are having the same row, I need to mention them as *axis(38, at=1:nrows)*, right? 3. *labels=**MPG3$Year *will give the name of all years in the X-axis, right? Kindly correct me if I am wrong. Sir, here one thing I would like to ask, my data frequency is not yearly. I obtained results from the daily data of the period from 1994-2017 (that means the no. of rows will be 5655). But, as the daily period is very unclear to mention in the X-axis, I wanted to give year name as the name of the X-axis (that means, 1995, 1997, 1999 with the increment of 2 years up to 2017). Sir, please suggest me how to proceed with this? 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, 1:46:50 PM On Wed, Nov 21, 2018 at 1:21 PM Jim Lemon <drjimle...@gmail.com> wrote: > 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* >> > -- *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.