ggplot_calendar_heatmap {ggTimeSeries} | R Documentation |
Plots a calendar heatmap
Description
A calendar heatmap provides context for weeks, and day of week which makes it a better way to visualise daily data than line charts. Largely uses Codoremifa's code from stackoverflow.com/questions/22815688/calendar-time-series-with-r.
Usage
ggplot_calendar_heatmap(dtDateValue, cDateColumnName = "",
cValueColumnName = "", vcGroupingColumnNames = "Year",
dayBorderSize = 0.25, dayBorderColour = "black",
monthBorderSize = 2, monthBorderColour = "black",
monthBorderLineEnd = "round")
Arguments
dtDateValue |
Data set which may include other columns apart from date and values. |
cDateColumnName |
Column name of the dates. |
cValueColumnName |
Column name of the data. |
vcGroupingColumnNames |
The set of columns which together define the group for the chart to operate within If you plan to facet your plot, you should specify the same column names to this argument. The function will automatically add the veriable for the year to the facet. |
dayBorderSize |
Size of the border around each day |
dayBorderColour |
Colour of the border around each day |
monthBorderSize |
Size of the border around each month |
monthBorderColour |
Colour of the border around each month |
monthBorderLineEnd |
Line end for the border around each month |
Value
Returns a gpplot friendly object which means the user can use ggplot scales to modify the look, add more geoms, etc.
Cosmetic Tips
The minimalist look can be achieved by appending the
following chunk of code to the output object:
+
xlab(NULL) +
ylab(NULL) +
scale_fill_continuous(low = 'green', high = 'red') +
theme(
axis.text = element_blank(),
axis.ticks = element_blank(),
legend.position = 'none',
strip.background = element_blank(),
# strip.text = element_blank(), # useful if only one year of data
plot.background = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank()
)
Also See
stat_calendar_heatmap
, a
flexible but less polished alternative.
Examples
{
library(data.table)
library(ggplot2)
set.seed(1)
dtData = data.table(
DateCol = seq(
as.Date("1/01/2014", "%d/%m/%Y"),
as.Date("31/12/2015", "%d/%m/%Y"),
"days"
),
ValueCol = runif(730)
)
# you could also try categorical data with
# ValueCol = sample(c('a','b','c'), 730, replace = T)
p1 = ggplot_calendar_heatmap(
dtData,
'DateCol',
'ValueCol'
)
p1
# add new geoms
p1 +
geom_text(label = '!!!') +
scale_colour_continuous(low = 'red', high = 'green')
}