Re: [R] Histogram plots in Lattice with spatialgrid dataframe data
Jeff, Thank you! I know what I did was very inelegant and I understand about providing a reproducible example; I just could not do it with my data -- I guess I was too lazy to make up a toy one. I apologize about the email formatting. I would never have known to use 'stack', 'levels' 'gather' and 'mutate' -- still very much learning... so, I appreciate what you provided. Thank you so much! Tom On Sun, Jul 9, 2017 at 10:16 PM, Jeff Newmiller wrote: > Glad you found an answer, though it looks more self-educational than > efficient (see suggestions below). In the future, follow the > recommendations of the Posting Guide: use plain text, and provide a > reproducible example. Some elaborations on what "reproducible" means are > [1][2][3]. One issue here was that you did not include sample data to work > with (I have assumed below that ann_bias has no other columns than the > bias columns, which is not the usual case). > > There are a number of ways to achieve the reshaping of your ann_bias data > frame that are less painful than your approach. For example, the base R > "stack" function: > > bias2 <- stack( ann_bias ) > names( bias2 ) <- c( "bias", "year ) > levels( bias2$year ) <- sub( "bias", "", levels( bias2$year ) ) > > Or... if you are willing to venture into the tidyverse... > > library(dplyr) > library(tidyr) > bias3 <- ( ann_bias > %>% gather( year, bias ) > %>% mutate( year = factor( sub( "bias", "", year ) ) ) > ) > > [1] http://stackoverflow.com/questions/5963269/how-to-make- > a-great-r-reproducible-example > > [2] http://adv-r.had.co.nz/Reproducibility.html > > [3] https://cran.r-project.org/web/packages/reprex/index.html > > -- > Sent from my phone. Please excuse my brevity. > > On July 9, 2017 12:32:32 PM PDT, Thomas Adams wrote: > >Hello all, > > > >After more digging I was able to find out how to do this. The answer > >came > >from an example here: > > > >https://stackoverflow.com/questions/3541713/how-to-plot- > two-histograms-together-in-r > > > > > >yr_1997<-data.frame(bias=ann_bias$bias1997) > >yr_1998<-data.frame(bias=ann_bias$bias1998) > >yr_1999<-data.frame(bias=ann_bias$bias1999) > >yr_2000<-data.frame(bias=ann_bias$bias2000) > >yr_2001<-data.frame(bias=ann_bias$bias2001) > >yr_2002<-data.frame(bias=ann_bias$bias2002) > >yr_2003<-data.frame(bias=ann_bias$bias2003) > >yr_2004<-data.frame(bias=ann_bias$bias2004) > >yr_2005<-data.frame(bias=ann_bias$bias2005) > >yr_2006<-data.frame(bias=ann_bias$bias2006) > >yr_2007<-data.frame(bias=ann_bias$bias2007) > >yr_2008<-data.frame(bias=ann_bias$bias2008) > >yr_2009<-data.frame(bias=ann_bias$bias2009) > >yr_2010<-data.frame(bias=ann_bias$bias2010) > >yr_2011<-data.frame(bias=ann_bias$bias2011) > >yr_2012<-data.frame(bias=ann_bias$bias2012) > >yr_2013<-data.frame(bias=ann_bias$bias2013) > >yr_2014<-data.frame(bias=ann_bias$bias2014) > >yr_2015<-data.frame(bias=ann_bias$bias2015) > >yr_2016<-data.frame(bias=ann_bias$bias2016) > > > > > >yr_1997$year<-'1997' > >yr_1998$year<-'1998' > >yr_1999$year<-'1999' > >yr_2000$year<-'2000' > >yr_2001$year<-'2001' > >yr_2002$year<-'2002' > >yr_2003$year<-'2003' > >yr_2004$year<-'2004' > >yr_2005$year<-'2005' > >yr_2006$year<-'2006' > >yr_2007$year<-'2007' > >yr_2008$year<-'2008' > >yr_2009$year<-'2009' > >yr_2010$year<-'2010' > >yr_2011$year<-'2011' > >yr_2012$year<-'2012' > >yr_2013$year<-'2013' > >yr_2014$year<-'2014' > >yr_2015$year<-'2015' > >yr_2016$year<-'2016' > > > > > >bias<-rbind(yr_1997,yr_1998,yr_1999,yr_2000,yr_2001,yr_ > 2002,yr_2003,yr_2004,yr_2005,yr_2006,yr_2007,yr_2008,yr_ > 2009,yr_2010,yr_2011,yr_2012,yr_2013,yr_2014,yr_2015,yr_2016) > >histogram(~ bias | year, data=bias) > > > >Cheers! > >Tom > > > > > >On Sun, Jul 9, 2017 at 11:21 AM, Thomas Adams wrote: > > > >> Hi all, > >> > >> I can not seem to get what I want using the Lattice package to > >generate an > >> array of histograms of > >> spatialgrid dataframe data. > >> > >> I can use the sp package and spplot to generate an array of maps that > >> display an array of spatialgrid dataframe data -- that's good. I > >have: > >> > >> spplot(ann_bias,xlim=c(1423987.5,2614612.5),ylim=c(- > >> > >5862637.5,-4624387.5),at=brks,col.regions=colp(length( > brks)-1),main="NOAA/NWS > >> OHRFC Stage-3/MPE Precipitation Estimate Bias with respect to > >PRISM\n1997 - > >> 2016") > >> > >> Which works... I can also do histogram(ann_bias$bias1997), which > >works > >> too. I have also created a 'time-series' of boxplots successfully > >with > >> these data as well... > >> > >> But if I try: > >> > >> year<-c('1997','1998','1999','2000','2001','2002','2003',' > >> 2004','2005','2006','2007','2008','2009','2010','2011',' > >> 2012','2013','2014','2015','2016') > >> dat<-c(ann_bias$bias1997,ann_bias$bias1998,ann_bias$ > >> bias1999,ann_bias$bias2000,ann_bias$bias2001,ann_bias$ > >> bias2002,ann_bias$bias2003,ann_bias$bias2004,ann_bias$ > >> bias2005,ann_bias$bias2006,ann_bias$bias2007,ann_bias$ > >> bias2008,ann_bia
Re: [R] Histogram plots in Lattice with spatialgrid dataframe data
Glad you found an answer, though it looks more self-educational than efficient (see suggestions below). In the future, follow the recommendations of the Posting Guide: use plain text, and provide a reproducible example. Some elaborations on what "reproducible" means are [1][2][3]. One issue here was that you did not include sample data to work with (I have assumed below that ann_bias has no other columns than the bias columns, which is not the usual case). There are a number of ways to achieve the reshaping of your ann_bias data frame that are less painful than your approach. For example, the base R "stack" function: bias2 <- stack( ann_bias ) names( bias2 ) <- c( "bias", "year ) levels( bias2$year ) <- sub( "bias", "", levels( bias2$year ) ) Or... if you are willing to venture into the tidyverse... library(dplyr) library(tidyr) bias3 <- ( ann_bias %>% gather( year, bias ) %>% mutate( year = factor( sub( "bias", "", year ) ) ) ) [1] http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example [2] http://adv-r.had.co.nz/Reproducibility.html [3] https://cran.r-project.org/web/packages/reprex/index.html -- Sent from my phone. Please excuse my brevity. On July 9, 2017 12:32:32 PM PDT, Thomas Adams wrote: >Hello all, > >After more digging I was able to find out how to do this. The answer >came >from an example here: > >https://stackoverflow.com/questions/3541713/how-to-plot-two-histograms-together-in-r > > >yr_1997<-data.frame(bias=ann_bias$bias1997) >yr_1998<-data.frame(bias=ann_bias$bias1998) >yr_1999<-data.frame(bias=ann_bias$bias1999) >yr_2000<-data.frame(bias=ann_bias$bias2000) >yr_2001<-data.frame(bias=ann_bias$bias2001) >yr_2002<-data.frame(bias=ann_bias$bias2002) >yr_2003<-data.frame(bias=ann_bias$bias2003) >yr_2004<-data.frame(bias=ann_bias$bias2004) >yr_2005<-data.frame(bias=ann_bias$bias2005) >yr_2006<-data.frame(bias=ann_bias$bias2006) >yr_2007<-data.frame(bias=ann_bias$bias2007) >yr_2008<-data.frame(bias=ann_bias$bias2008) >yr_2009<-data.frame(bias=ann_bias$bias2009) >yr_2010<-data.frame(bias=ann_bias$bias2010) >yr_2011<-data.frame(bias=ann_bias$bias2011) >yr_2012<-data.frame(bias=ann_bias$bias2012) >yr_2013<-data.frame(bias=ann_bias$bias2013) >yr_2014<-data.frame(bias=ann_bias$bias2014) >yr_2015<-data.frame(bias=ann_bias$bias2015) >yr_2016<-data.frame(bias=ann_bias$bias2016) > > >yr_1997$year<-'1997' >yr_1998$year<-'1998' >yr_1999$year<-'1999' >yr_2000$year<-'2000' >yr_2001$year<-'2001' >yr_2002$year<-'2002' >yr_2003$year<-'2003' >yr_2004$year<-'2004' >yr_2005$year<-'2005' >yr_2006$year<-'2006' >yr_2007$year<-'2007' >yr_2008$year<-'2008' >yr_2009$year<-'2009' >yr_2010$year<-'2010' >yr_2011$year<-'2011' >yr_2012$year<-'2012' >yr_2013$year<-'2013' >yr_2014$year<-'2014' >yr_2015$year<-'2015' >yr_2016$year<-'2016' > > >bias<-rbind(yr_1997,yr_1998,yr_1999,yr_2000,yr_2001,yr_2002,yr_2003,yr_2004,yr_2005,yr_2006,yr_2007,yr_2008,yr_2009,yr_2010,yr_2011,yr_2012,yr_2013,yr_2014,yr_2015,yr_2016) >histogram(~ bias | year, data=bias) > >Cheers! >Tom > > >On Sun, Jul 9, 2017 at 11:21 AM, Thomas Adams wrote: > >> Hi all, >> >> I can not seem to get what I want using the Lattice package to >generate an >> array of histograms of >> spatialgrid dataframe data. >> >> I can use the sp package and spplot to generate an array of maps that >> display an array of spatialgrid dataframe data -- that's good. I >have: >> >> spplot(ann_bias,xlim=c(1423987.5,2614612.5),ylim=c(- >> >5862637.5,-4624387.5),at=brks,col.regions=colp(length(brks)-1),main="NOAA/NWS >> OHRFC Stage-3/MPE Precipitation Estimate Bias with respect to >PRISM\n1997 - >> 2016") >> >> Which works... I can also do histogram(ann_bias$bias1997), which >works >> too. I have also created a 'time-series' of boxplots successfully >with >> these data as well... >> >> But if I try: >> >> year<-c('1997','1998','1999','2000','2001','2002','2003',' >> 2004','2005','2006','2007','2008','2009','2010','2011',' >> 2012','2013','2014','2015','2016') >> dat<-c(ann_bias$bias1997,ann_bias$bias1998,ann_bias$ >> bias1999,ann_bias$bias2000,ann_bias$bias2001,ann_bias$ >> bias2002,ann_bias$bias2003,ann_bias$bias2004,ann_bias$ >> bias2005,ann_bias$bias2006,ann_bias$bias2007,ann_bias$ >> bias2008,ann_bias$bias2009,ann_bias$bias2010,ann_bias$ >> bias2011,ann_bias$bias2012,ann_bias$bias2013,ann_bias$ >> bias2014,ann_bias$bias2015,ann_bias$bias2016) >> >> > data<-data.frame(year=c(year),bias=c(dat)) >> > histogram(~ bias | year, data=data) >> >> I get a lattice plot of histograms, where the years vary, but all the >> histograms are identical, which I know they should not be. It seem >that all >> the data from the combined spatialgrid dataframes are being used and >> repeated. >> >> Obviously, I'm not constructing the data correctly. Can someone tell >me >> what I doing wrong. I've poured over this for a solid day, now... >> >> Regards, >> Tom >> >> > > [[alternative HTML version deleted]] > >
Re: [R] Histogram plots in Lattice with spatialgrid dataframe data
Hello all, After more digging I was able to find out how to do this. The answer came from an example here: https://stackoverflow.com/questions/3541713/how-to-plot-two-histograms-together-in-r yr_1997<-data.frame(bias=ann_bias$bias1997) yr_1998<-data.frame(bias=ann_bias$bias1998) yr_1999<-data.frame(bias=ann_bias$bias1999) yr_2000<-data.frame(bias=ann_bias$bias2000) yr_2001<-data.frame(bias=ann_bias$bias2001) yr_2002<-data.frame(bias=ann_bias$bias2002) yr_2003<-data.frame(bias=ann_bias$bias2003) yr_2004<-data.frame(bias=ann_bias$bias2004) yr_2005<-data.frame(bias=ann_bias$bias2005) yr_2006<-data.frame(bias=ann_bias$bias2006) yr_2007<-data.frame(bias=ann_bias$bias2007) yr_2008<-data.frame(bias=ann_bias$bias2008) yr_2009<-data.frame(bias=ann_bias$bias2009) yr_2010<-data.frame(bias=ann_bias$bias2010) yr_2011<-data.frame(bias=ann_bias$bias2011) yr_2012<-data.frame(bias=ann_bias$bias2012) yr_2013<-data.frame(bias=ann_bias$bias2013) yr_2014<-data.frame(bias=ann_bias$bias2014) yr_2015<-data.frame(bias=ann_bias$bias2015) yr_2016<-data.frame(bias=ann_bias$bias2016) yr_1997$year<-'1997' yr_1998$year<-'1998' yr_1999$year<-'1999' yr_2000$year<-'2000' yr_2001$year<-'2001' yr_2002$year<-'2002' yr_2003$year<-'2003' yr_2004$year<-'2004' yr_2005$year<-'2005' yr_2006$year<-'2006' yr_2007$year<-'2007' yr_2008$year<-'2008' yr_2009$year<-'2009' yr_2010$year<-'2010' yr_2011$year<-'2011' yr_2012$year<-'2012' yr_2013$year<-'2013' yr_2014$year<-'2014' yr_2015$year<-'2015' yr_2016$year<-'2016' bias<-rbind(yr_1997,yr_1998,yr_1999,yr_2000,yr_2001,yr_2002,yr_2003,yr_2004,yr_2005,yr_2006,yr_2007,yr_2008,yr_2009,yr_2010,yr_2011,yr_2012,yr_2013,yr_2014,yr_2015,yr_2016) histogram(~ bias | year, data=bias) Cheers! Tom On Sun, Jul 9, 2017 at 11:21 AM, Thomas Adams wrote: > Hi all, > > I can not seem to get what I want using the Lattice package to generate an > array of histograms of > spatialgrid dataframe data. > > I can use the sp package and spplot to generate an array of maps that > display an array of spatialgrid dataframe data -- that's good. I have: > > spplot(ann_bias,xlim=c(1423987.5,2614612.5),ylim=c(- > 5862637.5,-4624387.5),at=brks,col.regions=colp(length(brks)-1),main="NOAA/NWS > OHRFC Stage-3/MPE Precipitation Estimate Bias with respect to PRISM\n1997 - > 2016") > > Which works... I can also do histogram(ann_bias$bias1997), which works > too. I have also created a 'time-series' of boxplots successfully with > these data as well... > > But if I try: > > year<-c('1997','1998','1999','2000','2001','2002','2003',' > 2004','2005','2006','2007','2008','2009','2010','2011',' > 2012','2013','2014','2015','2016') > dat<-c(ann_bias$bias1997,ann_bias$bias1998,ann_bias$ > bias1999,ann_bias$bias2000,ann_bias$bias2001,ann_bias$ > bias2002,ann_bias$bias2003,ann_bias$bias2004,ann_bias$ > bias2005,ann_bias$bias2006,ann_bias$bias2007,ann_bias$ > bias2008,ann_bias$bias2009,ann_bias$bias2010,ann_bias$ > bias2011,ann_bias$bias2012,ann_bias$bias2013,ann_bias$ > bias2014,ann_bias$bias2015,ann_bias$bias2016) > > > data<-data.frame(year=c(year),bias=c(dat)) > > histogram(~ bias | year, data=data) > > I get a lattice plot of histograms, where the years vary, but all the > histograms are identical, which I know they should not be. It seem that all > the data from the combined spatialgrid dataframes are being used and > repeated. > > Obviously, I'm not constructing the data correctly. Can someone tell me > what I doing wrong. I've poured over this for a solid day, now... > > Regards, > Tom > > [[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.
[R] Histogram plots in Lattice with spatialgrid dataframe data
Hi all, I can not seem to get what I want using the Lattice package to generate an array of histograms of spatialgrid dataframe data. I can use the sp package and spplot to generate an array of maps that display an array of spatialgrid dataframe data -- that's good. I have: spplot(ann_bias,xlim=c(1423987.5,2614612.5),ylim=c(-5862637.5,-4624387.5),at=brks,col.regions=colp(length(brks)-1),main="NOAA/NWS OHRFC Stage-3/MPE Precipitation Estimate Bias with respect to PRISM\n1997 - 2016") Which works... I can also do histogram(ann_bias$bias1997), which works too. I have also created a 'time-series' of boxplots successfully with these data as well... But if I try: year<-c('1997','1998','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012','2013','2014','2015','2016') dat<-c(ann_bias$bias1997,ann_bias$bias1998,ann_bias$bias1999,ann_bias$bias2000,ann_bias$bias2001,ann_bias$bias2002,ann_bias$bias2003,ann_bias$bias2004,ann_bias$bias2005,ann_bias$bias2006,ann_bias$bias2007,ann_bias$bias2008,ann_bias$bias2009,ann_bias$bias2010,ann_bias$bias2011,ann_bias$bias2012,ann_bias$bias2013,ann_bias$bias2014,ann_bias$bias2015,ann_bias$bias2016) > data<-data.frame(year=c(year),bias=c(dat)) > histogram(~ bias | year, data=data) I get a lattice plot of histograms, where the years vary, but all the histograms are identical, which I know they should not be. It seem that all the data from the combined spatialgrid dataframes are being used and repeated. Obviously, I'm not constructing the data correctly. Can someone tell me what I doing wrong. I've poured over this for a solid day, now... Regards, Tom [[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.