[R] Can someone please explain why the last tick mark on this chart is not showing?
Hi all, I'm trying to log chart but with natural looking tick marks. My specifications are very specific -- it must indicate the lowest number's tick as well as the maximum. I've attached sample code and data for a particular case (and there are a few more like this) where the bottom tickmarks on the chart are not set to where I want them to be and yet they fit in the ylim range. Please, can anyone help? I'm tearing my hair out at this point.. Thanking you in advance, George. # Code below sample-c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5525, 5600, 7100, 6124, 6550, 6061, 6950, 6650, 7150, 7275, 8700, 10511, 10399, 10345, 11200, 10200, 11035, 12500, 15750, 14445, 10902, 11500, 8527, 6440, 7140, 7190, 6844, 6750, 6924, 6268, 8010, 7575, 8200, 9240) # Plotting code # Box settings par(bty=l,ps=7,tcl=0.2,mgp=c(0.5,0.2,0),bg=white); # Make x axis match exactly the data par(xaxs=i,yaxs=r); # Margins par(mar=c(1.2,1.8,1,1)) # Step 1: Generate logs for the data sampleLog-log(sample,10) # Step 2: Determine pretty min/max for the data purtee-pretty(c(sample,pxTarget)) dataMin-min(sample,na.rm=T)*0.95 dataMax-max(purtee) # Step 3: Create exponential series t-exp(seq(log(dataMin),log(dataMax),length=11)) t2-round(t,-1) t2[t2==0]-1 # natural looking labels lab-signif(round(t,-1),2) lab[1]-signif(lab[1],1) ylimits-range(log(t2,10)) plot(sampleLog,type='l',xaxt=n,yaxt=n,ylim=ylimits,las=2,ann=FALSE) axis(2,las=2,at=log(lab,10),labels=lab); __ R-help@r-project.org 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.
Re: [R] Can someone please explain why the last tick mark on this chart is not showing?
On Sep 16, 2009, at 11:13 AM, Jorgy Porgee wrote: Hi all, I'm trying to log chart but with natural looking tick marks. My specifications are very specific -- it must indicate the lowest number's tick as well as the maximum. I've attached sample code and data for a particular case (and there are a few more like this) where the bottom tickmarks on the chart are not set to where I want them to be and yet they fit in the ylim range. Please, can anyone help? I'm tearing my hair out at this point.. Thanking you in advance, George. # Code below sample-c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5525, 5600, 7100, 6124, 6550, 6061, 6950, 6650, 7150, 7275, 8700, 10511, 10399, 10345, 11200, 10200, 11035, 12500, 15750, 14445, 10902, 11500, 8527, 6440, 7140, 7190, 6844, 6750, 6924, 6268, 8010, 7575, 8200, 9240) # Plotting code # Box settings par(bty=l,ps=7,tcl=0.2,mgp=c(0.5,0.2,0),bg=white); # Make x axis match exactly the data par(xaxs=i,yaxs=r); # Margins par(mar=c(1.2,1.8,1,1)) # Step 1: Generate logs for the data sampleLog-log(sample,10) # Step 2: Determine pretty min/max for the data purtee-pretty(c(sample,pxTarget)) Error in pretty(c(sample, pxTarget)) : object 'pxTarget' not found ...which then creates a cascade of errors dataMin-min(sample,na.rm=T)*0.95 dataMax-max(purtee) # Step 3: Create exponential series t-exp(seq(log(dataMin),log(dataMax),length=11)) t2-round(t,-1) t2[t2==0]-1 # natural looking labels lab-signif(round(t,-1),2) lab[1]-signif(lab[1],1) ylimits-range(log(t2,10)) plot (sampleLog,type='l',xaxt=n,yaxt=n,ylim=ylimits,las=2,ann=FALSE) axis(2,las=2,at=log(lab,10),labels=lab); __ R-help@r-project.org 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. David Winsemius, MD Heritage Laboratories West Hartford, CT __ R-help@r-project.org 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.
Re: [R] Can someone please explain why the last tick mark on this chart is not showing?
Hi David, Sorry, forgot to define pxTarget. It can be anything you choose so say pxTarget-1. I've also renamed sample to sampleData. The following cut and paste should work: The last tick mark (5000) is not showing for some reason... :-/ Regards, George sampleData-c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5525, 5600, 7100, 6124, 6550, 6061, 6950, 6650, 7150, 7275, 8700, 10511, 10399, 10345, 11200, 10200, 11035, 12500, 15750, 14445, 10902, 11500, 8527, 6440, 7140, 7190, 6844, 6750, 6924, 6268, 8010, 7575, 8200, 9240) pxTarget-1 # Plotting code # Box settings par(bty=l,ps=7,tcl=0.2,mgp=c(0.5,0.2,0),bg=white); # Make x axis match exactly the data par(xaxs=i,yaxs=r); # Margins par(mar=c(1.2,1.8,1,1)) # Step 1: Generate logs for the data sampleLog-log(sampleData,10) # Step 2: Determine pretty min/max for the data purtee-pretty(c(sampleData,pxTarget)) dataMin-min(sampleData,na.rm=T)*0.95 dataMax-max(purtee) # Step 3: Create exponential series t-exp(seq(log(dataMin),log(dataMax),length=11)) t2-round(t,-1) t2[t2==0]-1 # natural looking labels lab-signif(round(t,-1),2) lab[1]-signif(lab[1],1) ylimits-range(log(t2,10)) plot(sampleLog,type='l',xaxt=n,yaxt=n,ylim=ylimits,las=2,ann=FALSE) axis(2,las=2,at=log(lab,10),labels=lab); On Wed, Sep 16, 2009 at 5:20 PM, David Winsemius dwinsem...@comcast.net wrote: On Sep 16, 2009, at 11:13 AM, Jorgy Porgee wrote: Hi all, I'm trying to log chart but with natural looking tick marks. My specifications are very specific -- it must indicate the lowest number's tick as well as the maximum. I've attached sample code and data for a particular case (and there are a few more like this) where the bottom tickmarks on the chart are not set to where I want them to be and yet they fit in the ylim range. Please, can anyone help? I'm tearing my hair out at this point.. Thanking you in advance, George. # Code below sample-c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5525, 5600, 7100, 6124, 6550, 6061, 6950, 6650, 7150, 7275, 8700, 10511, 10399, 10345, 11200, 10200, 11035, 12500, 15750, 14445, 10902, 11500, 8527, 6440, 7140, 7190, 6844, 6750, 6924, 6268, 8010, 7575, 8200, 9240) # Plotting code # Box settings par(bty=l,ps=7,tcl=0.2,mgp=c(0.5,0.2,0),bg=white); # Make x axis match exactly the data par(xaxs=i,yaxs=r); # Margins par(mar=c(1.2,1.8,1,1)) # Step 1: Generate logs for the data sampleLog-log(sample,10) # Step 2: Determine pretty min/max for the data purtee-pretty(c(sample,pxTarget)) Error in pretty(c(sample, pxTarget)) : object 'pxTarget' not found ...which then creates a cascade of errors dataMin-min(sample,na.rm=T)*0.95 dataMax-max(purtee) # Step 3: Create exponential series t-exp(seq(log(dataMin),log(dataMax),length=11)) t2-round(t,-1) t2[t2==0]-1 # natural looking labels lab-signif(round(t,-1),2) lab[1]-signif(lab[1],1)
Re: [R] Can someone please explain why the last tick mark on this chart is not showing?
It shows if you lower your minimum a bit by applying a factor of 0.90 to your generation of dataMin. -- David. On Sep 16, 2009, at 11:27 AM, Jorgy Porgee wrote: Hi David, Sorry, forgot to define pxTarget. It can be anything you choose so say pxTarget-1. I've also renamed sample to sampleData. The following cut and paste should work: The last tick mark (5000) is not showing for some reason... :-/ Regards, George sampleData-c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5525, 5600, 7100, 6124, 6550, 6061, 6950, 6650, 7150, 7275, 8700, 10511, 10399, 10345, 11200, 10200, 11035, 12500, 15750, 14445, 10902, 11500, 8527, 6440, 7140, 7190, 6844, 6750, 6924, 6268, 8010, 7575, 8200, 9240) pxTarget-1 # Plotting code # Box settings par(bty=l,ps=7,tcl=0.2,mgp=c(0.5,0.2,0),bg=white); # Make x axis match exactly the data par(xaxs=i,yaxs=r); # Margins par(mar=c(1.2,1.8,1,1)) # Step 1: Generate logs for the data sampleLog-log(sampleData,10) # Step 2: Determine pretty min/max for the data purtee-pretty(c(sampleData,pxTarget)) dataMin-min(sampleData,na.rm=T)*0.95 dataMax-max(purtee) # Step 3: Create exponential series t-exp(seq(log(dataMin),log(dataMax),length=11)) t2-round(t,-1) t2[t2==0]-1 # natural looking labels lab-signif(round(t,-1),2) lab[1]-signif(lab[1],1) ylimits-range(log(t2,10)) plot (sampleLog,type='l',xaxt=n,yaxt=n,ylim=ylimits,las=2,ann=FALSE) axis(2,las=2,at=log(lab,10),labels=lab); On Wed, Sep 16, 2009 at 5:20 PM, David Winsemius dwinsem...@comcast.net wrote: On Sep 16, 2009, at 11:13 AM, Jorgy Porgee wrote: Hi all, I'm trying to log chart but with natural looking tick marks. My specifications are very specific -- it must indicate the lowest number's tick as well as the maximum. I've attached sample code and data for a particular case (and there are a few more like this) where the bottom tickmarks on the chart are not set to where I want them to be and yet they fit in the ylim range. Please, can anyone help? I'm tearing my hair out at this point.. Thanking you in advance, George. # Code below sample-c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5525, 5600, 7100, 6124, 6550, 6061, 6950, 6650, 7150, 7275, 8700, 10511, 10399, 10345, 11200, 10200, 11035, 12500, 15750, 14445, 10902, 11500, 8527, 6440, 7140, 7190, 6844, 6750, 6924, 6268, 8010, 7575, 8200, 9240) # Plotting code # Box settings par(bty=l,ps=7,tcl=0.2,mgp=c(0.5,0.2,0),bg=white); # Make x axis match exactly the data par(xaxs=i,yaxs=r); # Margins par(mar=c(1.2,1.8,1,1)) # Step 1: Generate logs for the data sampleLog-log(sample,10) # Step 2: Determine pretty min/max for the data purtee-pretty(c(sample,pxTarget)) Error in pretty(c(sample, pxTarget)) : object 'pxTarget' not found ...which then creates a cascade of errors dataMin-min(sample,na.rm=T)*0.95 dataMax-max(purtee) # Step 3: Create exponential series