Macrobond R API is available for users with Data+ and Legacy license (the latter without searching and revision history functions). Examples were tested on Macrobond version 1.27, Macrobond API for R version 1.2-8 and R 4.3.0.
See below how to construct ridgeline chart with packages ggplot2 + ggridge. Example is presented on Australia's temperature data from Australian Bureau of Meteorology. Jump to the code.
Images from code for plot 1 (ridges2), plot 2 (ridges_gradient).
With ggplot2 + ggridges packages
library(MacrobondAPI)
library(ggplot2)
library(ggridges)
library(tidyverse)
#select series
series<-c("auenvo0013")
#get dates
dates<-getDatesAtStartOfPeriod(FetchOneTimeSeries(series))
#get values
values<-getValues(FetchOneTimeSeries(series))
#create data frame for plot 1 (two categories)
data<-data.frame(dates, values) %>%
mutate(year=as.character(lubridate::year(dates)), #create column with year
quarter=as.character(lubridate::quarter(dates))) %>% #create column with quarter
mutate(quarter = fct_relevel(quarter, levels = "4", "3", "2", "1")) %>% #to have specific order of data in ggplot2 you need to set levels
filter(year %in% c(1871, 2021)) #filter data for specific periods
#create data frame for plot 2 (one category)
data2<-data.frame(dates, values) %>%
mutate(year=as.character(lubridate::year(dates)), #create column with year
quarter=as.character(lubridate::quarter(dates))) %>% #create column with quarter
mutate(quarter = fct_relevel(quarter, levels = "4", "3", "2", "1")) %>% #to have specific order of data in ggplot2 you need to set levels
filter(year %in% c(2021)) #filter data for specific period
#plot 1, with transparent colors
ggplot(data, aes(x = values, y =quarter, fill=year)) +
geom_density_ridges2(alpha = 0.7, #ggridges option
scale=1) +
scale_fill_manual(values=c("#ffd700", "#cc2d0c")) + #colors
scale_x_continuous(breaks=c(-10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45)) + #set specific ticks on x-axis
xlab("high air temperature") + #x-axis label
ylab("quarter of year") + #y-axis label
ggtitle("Australia, Sydney") + #title
theme_minimal()
#plot 2, with cold-hot gradient
ggplot(data2, aes(x = values, y =quarter, fill=stat(x))) +
geom_density_ridges_gradient(scale=1, #ggridges option
linetype=0)+ #border lines
scale_fill_viridis_c(name = "Temp.", option = "C")+ #colors + legend's title
scale_x_continuous(breaks=c(-10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45)) + #set specific ticks on x-axis
xlab("high air temperature") + #x-axis label
ylab("quarter of year") + #y-axis label
ggtitle("Australia, Sydney 2021") + #title
theme_minimal()