Description Usage Arguments Value Cosmetic Tips Also See Examples
View source: R/ggplot_calendar_heatmap.R
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.
1 2 3 4 5 | ggplot_calendar_heatmap(dtDateValue, cDateColumnName = "",
cValueColumnName = "", vcGroupingColumnNames = "Year",
dayBorderSize = 0.25, dayBorderColour = "black",
monthBorderSize = 2, monthBorderColour = "black",
monthBorderLineEnd = "round")
|
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 |
Returns a gpplot friendly object which means the user can use ggplot scales to modify the look, add more geoms, etc.
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()
)
stat_calendar_heatmap
, a
flexible but less polished alternative.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | {
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')
}
|
Loading required package: ggplot2
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.