[R] Plotting Very Large lat-lon data in x-y axes graph

Ogbos Okike giftedlife2014 @ending from gm@il@com
Mon Dec 10 06:25:04 CET 2018


Dear Jim,

I used a bit of my data in my attempt to follow the code.

I got the attached plot after some tweaks.

I would like to add horizontal color bar legend that could be used to
explain the number of lightning counts at different points on the
latitude band as plotted.

Thank you
Warm regards
Ogbos

On Sun, Dec 9, 2018 at 9:46 PM Jim Lemon <drjimlemon using gmail.com> wrote:
>
> Hi Ogbos,
> Here is a slight modification of a method I use to display trip
> density on a map:
>
> oolt<-read.table(text="Lat Lon
> 30.1426 104.7854
> 30.5622 105.0837
> 30.0966 104.6213
> 29.9795 104.8430
> 39.2802 147.7295
> 30.2469 104.6543
> 26.4428 157.7293
> 29.4782 104.5590
> 32.3839 105.3293
> 26.4746 157.8411
> 25.1014 159.6959
> 25.1242 159.6558
> 30.1607 104.9100
> 31.4900 -71.8919
> 43.3655 -74.9994
> 30.0811 104.8462
> 29.0912 -85.5138
> 26.6204 -80.9342
> 31.5462 -71.9638
> 26.8619 97.3844
> 30.2534 104.6134
> 29.9311 -85.3434
> 26.1524 159.6806
> 26.5112 158.0233
> 26.5441 158.0565
> 27.8901 -105.8554
> 30.3175 104.7135
> 26.4822 157.6127
> 30.1887 104.5986
> 29.5058 104.5661
> 26.4010 157.5749
> 30.2281 104.7585
> 31.4556 110.5619
> 30.1700 104.5861
> 26.3911 157.4776
> 30.6493 104.9949
> 30.2209 104.6629
> 26.0488 97.3608
> 30.2142 104.8023
> 30.1806 104.8158
> 25.2107 160.1690
> 30.6708 104.9385
> 30.4152 104.7002
> 30.2446 104.7804
> 29.5760 -85.1535
> 26.4484 92.4312
> 26.3914 157.4189
> 26.3986 157.4421
> 30.4903 -88.2271
> 30.6727 104.8768
> 30.2518 104.6466
> 41.6979 -78.4136
> 33.7575 72.1089
> 26.8333 -80.9485
> 25.3103 124.0978
> 30.1742 104.7554
> 30.6345 104.9739
> 30.2075 104.7960
> 30.2226 104.7517
> 30.5948 105.0532",
> header=TRUE)
> latlim<-c(20,45)
> lonlim<-c(-90,160)
> latbreaks<-seq(latlim[1],latlim[2],by=5)
> lonbreaks<-seq(lonlim[1],lonlim[2],by=10)
>
> mids<-function(x) {
>  lenx<-length(x)
>  return((x[1:(lenx-1)]+x[2:lenx])/2)
> }
> lonmids<-mids(lonbreaks)
> latmids<-mids(latbreaks)
> oolt$loncuts<-cut(oolt$Lon,lonbreaks)
> oolt$latcuts<-cut(oolt$Lat,latbreaks)
> counts<-table(oolt$latcuts,oolt$loncuts)
> library(plotrix)
> countcol<-color.scale(counts,extremes=c("blue","red"))
> map("world",xlim=c(-90,160),ylim=c(20,45))
> for(lon in 1:length(lonmids)) {
>  for(lat in 1:length(latmids)) {
>   if(counts[lat,lon] > 0)
>    draw.circle(lonmids[lon],latmids[lat],radius=sqrt(counts[lat,lon]),
>     border=countcol[lat,lon],col=countcol[lat,lon])
>  }
> }
>
> If you have very large counts in some places you may need to adjust
> the radius of the circles.
>
> Jim
> On Mon, Dec 10, 2018 at 2:50 AM Ogbos Okike <giftedlife2014 using gmail.com> wrote:
> >
> > Dear Contributors,
> >
> > I have a data of the form:
> > Lat          Lon
> > 30.1426 104.7854
> > 30.5622 105.0837
> > 30.0966 104.6213
> > 29.9795 104.8430
> > 39.2802 147.7295
> > 30.2469 104.6543
> > 26.4428 157.7293
> > 29.4782 104.5590
> > 32.3839 105.3293
> > 26.4746 157.8411
> > 25.1014 159.6959
> > 25.1242 159.6558
> > 30.1607 104.9100
> > 31.4900 -71.8919
> > 43.3655 -74.9994
> > 30.0811 104.8462
> > 29.0912 -85.5138
> > 26.6204 -80.9342
> > 31.5462 -71.9638
> > 26.8619 97.3844
> > 30.2534 104.6134
> > 29.9311 -85.3434
> > 26.1524 159.6806
> > 26.5112 158.0233
> > 26.5441 158.0565
> > 27.8901 -105.8554
> > 30.3175 104.7135
> > 26.4822 157.6127
> > 30.1887 104.5986
> > 29.5058 104.5661
> > 26.4010 157.5749
> > 30.2281 104.7585
> > 31.4556 110.5619
> > 30.1700 104.5861
> > 26.3911 157.4776
> > 30.6493 104.9949
> > 30.2209 104.6629
> > 26.0488 97.3608
> > 30.2142 104.8023
> > 30.1806 104.8158
> > 25.2107 160.1690
> > 30.6708 104.9385
> > 30.4152 104.7002
> > 30.2446 104.7804
> > 29.5760 -85.1535
> > 26.4484 92.4312
> > 26.3914 157.4189
> > 26.3986 157.4421
> > 30.4903 -88.2271
> > 30.6727 104.8768
> > 30.2518 104.6466
> > 41.6979 -78.4136
> > 33.7575 72.1089
> > 26.8333 -80.9485
> > 25.3103 124.0978
> > 30.1742 104.7554
> > 30.6345 104.9739
> > 30.2075 104.7960
> > 30.2226 104.7517
> > 30.5948 105.0532.
> > The record is for lightning flashes in the continental U.S. and
> > surrounding waters within the latitudinal band between
> > 258 and 458N.
> >
> > I want to display the result in x-y co-ordinate plot. However, the
> > data is very large such that when plotted, everything just appeared
> > blurred.
> >
> >
> > Is there a way of using color codes to  indicate the regions of higher
> > or lower flash densities?
> >
> > I can attach the plot I generated but I am not sure if the moderator
> > will allow it to go with this.
> >
> > I will send it in a separate email if required.
> >
> > Thank you so much for sparing your time.
> >
> > Best
> > Ogbos
> >
> > ______________________________________________
> > R-help using 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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.png
Type: image/png
Size: 53400 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20181210/addbf450/attachment.png>


More information about the R-help mailing list