streamgraph is an htmlwidget for making streamgraphs.
A streamgraph (or "stream graph") is a type of stacked area graph which is displaced around a central axis, resulting in a flowing, organic shape. Streamgraphs were developed by Lee Byron and popularized by their use in a February 2008 New York Times article on movie box office revenues. (Wikipedia)
The x axis values can be continous or dates.
- Support is planned for
xts
objects, but not for a bit. - Support for categorical/discrete x axis
The following functions are implemented:
streamgraph
: Create a new streamgraphsg_axis_x
: Modify streamgraph x axis formattingsg_axis_y
: Modify streamgraph y axis formattingsg_colors
: Modify streamgraph axis text, legend popup label text and tooltip text colors (NOTE: no longer modifies fill colors, usesg_fill_*
for fill colors)sg_legend
: Add select menu "legend" to interactive streamgraphssg_fill_brewer
: Specify a ColorBrewer palette to use for the stream fillssg_fill_manual
: Specify a manual color palette to use for the stream fillssg_fill_tableau
: Specify a Tableau color palette to use for the stream fllssg_add_marker
: Annotate streamgraph with vertical line and labelsg_annotate
: Annotate streamgraph with a label
- Version
0.1
released - Version
0.2
released - working SVG tooltips; general code cleanup - Version
0.2.1
released - ok, working tool tips for realz now - Version
0.2.2
relased - rly rly rly fixed tooltips now, also assed ability to format y axis text - Version
0.3
released - folks can have some fun with newoffset
andinterpolate
parameters tostreamgraph
- Version
0.3.1
released - bug fix to fix error withd3.stack
;streamgraph
will now see if the date input is a year and automatically convert it to the necessary format (no need to useas.Date
) - Version
0.4
released - select menu "legend" (interactive only) - Version
0.4.1
released - removed warning message when supplyignPOSIXct
values (remember,POSIXct
still only works for granularities >= 1 day) - Versioin
0.4.2
released - fixed bug (thanks to teammate @bhaskarvk) that causes inconsistent color rendering for each area component (noticeable on resize of flexible width/height graphs) - Version
0.5
released - deprecated use ofsg_colors
. Its functionality will change soon and is replaced by threesg_fill_*
functions (brewer
,manual
andtableau
) which makes more sense, is aligned to theggplot2
way of specifying fill aesthetics and now makes it easier to highly customize the streamgraph appearance. - Version
0.5.1
released -sg_colors
now has nothing to do with the stream fills but does set the axis text, legend popup label text and tooltip text. - Version
0.6
released - Newscale
parameter tostreamgraph
lets you choose between continuous or date scales. - Version
0.7
released - Newsg_add_marker
andsg_annotation
to enable annotation of streamgraphs
devtools::install_github("hrbrmstr/streamgraph")
library(streamgraph)
# current verison
packageVersion("streamgraph")
library(dplyr)
ggplot2::movies %>%
select(year, Action, Animation, Comedy, Drama, Documentary, Romance, Short) %>%
tidyr::gather(genre, value, -year) %>%
group_by(year, genre) %>%
tally(wt=value) -> dat
streamgraph(dat, "genre", "n", "year", interactive=TRUE) %>%
sg_axis_x(20, "year", "%Y") %>%
sg_fill_brewer("PuOr")
library(streamgraph)
## Loading required package: htmlwidgets
## Loading required package: htmltools
library(testthat)
date()
## [1] "Thu Mar 12 21:00:31 2015"
test_dir("tests/")
## basic functionality :