Australian seasonality of fruit and vegetables

As pest scientists, it is important to understand how crop seasonality overlaps with pest seasonality.

But vegetable and fruit seasonality in Australia is important for a few other reasons. In season produce is cheaper, fresher, with a lower carbon footprint, compared with imported produce, due to increased local availability. In addition, different areas in Australia have different fruit production outputs e.g. high melon production in New South Wales but not in Victoria, so it is important to now what is grown near you.

So the aim here is to visualise what the “best” fruit and vegetable is to buy depending on what month it is and which Australian state you live in.

The first step is to start with data, which I compiled from the fruit and vegetable Horticulture Australia Statistics Handbooks. The publications list rough estimates of production levels (none, low, medium, high) for each commodity for each state, for each month. That’s a few dimensions, so here I’ll try and display the data succinctly.

First I load and shape the data.

d = read_csv('data/crops/CommoditySeasonalityHortHandbook16_17.csv') %>% 
  gather(Month, Production, -Commodity, -State) %>% 
  mutate(Month = as.Date(paste('01', Month, '2017'), format = '%d %b %Y')) %>% 
  mutate(Commodity = factor(Commodity, levels = rev(unique(Commodity)))) %>%
  filter(Production != 'None') %>%
  mutate(Production = factor(Production, levels = c('Low','Medium','High')))
head(d)
## # A tibble: 6 x 4
##   Commodity State             Month      Production
##   <fct>     <chr>             <date>     <fct>     
## 1 Apples    New South Wales   2017-07-01 Medium    
## 2 Apples    Victoria          2017-07-01 Medium    
## 3 Apples    Queensland        2017-07-01 Medium    
## 4 Apples    Western Australia 2017-07-01 Medium    
## 5 Apples    South Australia   2017-07-01 Medium    
## 6 Apples    Tasmania          2017-07-01 Medium

Next, I want to sort produce by season, so that in-season produce are closer together.

season_start = d %>% 
  group_by(State, Commodity) %>%
  filter(Production == 'High') %>%
  summarise(start = min(Month))
d = left_join(d, season_start)

Finally, I loop through each state and plot the production level for each crop in each month.

for (istate in unique(d$State)) {
  cat(istate)
  p = ggplot(d %>% filter(State == istate) %>% 
               mutate(Commodity = factor(Commodity, levels = unique(Commodity[order(start)]))))  +
    geom_line(aes(Month, Commodity, size = Production, colour = Production, group = Commodity)) + 
    scale_color_manual(values = c('#db0606', '#e8933a','#87e504'))+
    scale_size_manual(values = c(1,2,3)) + 
    scale_x_date(date_labels = '%b', date_breaks = '1 month') + 
    mydarktheme + 
    theme(panel.grid.minor.x = element_blank(),
          panel.grid.major.x = element_blank()) +
    ggtitle(istate) + 
    xlab('') + ylab('')
  print(p)
}
## New South Wales

## Victoria

## Queensland

## Western Australia

## South Australia

## Tasmania

## Northern Territory

## Imported

Related

comments powered by Disqus