Interactive theme river
How named categories rise, fall, and overlap across aligned dates.
- Purpose
- Compare how named temporal streams rise, fall, and overlap.
- Use when
- Shared movement and temporal pattern matter more than a single exact value.
- Avoid when
- Precise values, many streams, or a stable baseline is required.
- Equivalent data
- An adjacent table preserves dates, stream names, exact values, and classes.
Exact stream values
| Date | Stream | Value | Class |
|---|---|---|---|
| 2015/11/08 | DQ | 10 | stream-dq |
| 2015/11/09 | DQ | 15 | stream-dq |
| 2015/11/10 | DQ | 35 | stream-dq |
| 2015/11/11 | DQ | 38 | stream-dq |
| 2015/11/12 | DQ | 22 | stream-dq |
| 2015/11/13 | DQ | 16 | stream-dq |
| 2015/11/14 | DQ | 7 | stream-dq |
| 2015/11/15 | DQ | 2 | stream-dq |
| 2015/11/16 | DQ | 17 | stream-dq |
| 2015/11/17 | DQ | 33 | stream-dq |
| 2015/11/18 | DQ | 40 | stream-dq |
| 2015/11/19 | DQ | 32 | stream-dq |
| 2015/11/20 | DQ | 26 | stream-dq |
| 2015/11/21 | DQ | 35 | stream-dq |
| 2015/11/22 | DQ | 40 | stream-dq |
| 2015/11/23 | DQ | 32 | stream-dq |
| 2015/11/24 | DQ | 26 | stream-dq |
| 2015/11/25 | DQ | 22 | stream-dq |
| 2015/11/26 | DQ | 16 | stream-dq |
| 2015/11/27 | DQ | 22 | stream-dq |
| 2015/11/28 | DQ | 10 | stream-dq |
| 2015/11/08 | TY | 35 | stream-ty |
| 2015/11/09 | TY | 36 | stream-ty |
| 2015/11/10 | TY | 37 | stream-ty |
| 2015/11/11 | TY | 22 | stream-ty |
| 2015/11/12 | TY | 24 | stream-ty |
| 2015/11/13 | TY | 26 | stream-ty |
| 2015/11/14 | TY | 34 | stream-ty |
| 2015/11/15 | TY | 21 | stream-ty |
| 2015/11/16 | TY | 18 | stream-ty |
| 2015/11/17 | TY | 45 | stream-ty |
| 2015/11/18 | TY | 32 | stream-ty |
| 2015/11/19 | TY | 35 | stream-ty |
| 2015/11/20 | TY | 30 | stream-ty |
| 2015/11/21 | TY | 28 | stream-ty |
| 2015/11/22 | TY | 27 | stream-ty |
| 2015/11/23 | TY | 26 | stream-ty |
| 2015/11/24 | TY | 15 | stream-ty |
| 2015/11/25 | TY | 30 | stream-ty |
| 2015/11/26 | TY | 35 | stream-ty |
| 2015/11/27 | TY | 42 | stream-ty |
| 2015/11/28 | TY | 42 | stream-ty |
| 2015/11/08 | SS | 21 | stream-ss |
| 2015/11/09 | SS | 25 | stream-ss |
| 2015/11/10 | SS | 27 | stream-ss |
| 2015/11/11 | SS | 23 | stream-ss |
| 2015/11/12 | SS | 24 | stream-ss |
| 2015/11/13 | SS | 21 | stream-ss |
| 2015/11/14 | SS | 35 | stream-ss |
| 2015/11/15 | SS | 39 | stream-ss |
| 2015/11/16 | SS | 40 | stream-ss |
| 2015/11/17 | SS | 36 | stream-ss |
| 2015/11/18 | SS | 33 | stream-ss |
| 2015/11/19 | SS | 43 | stream-ss |
| 2015/11/20 | SS | 40 | stream-ss |
| 2015/11/21 | SS | 34 | stream-ss |
| 2015/11/22 | SS | 28 | stream-ss |
| 2015/11/23 | SS | 26 | stream-ss |
| 2015/11/24 | SS | 37 | stream-ss |
| 2015/11/25 | SS | 41 | stream-ss |
| 2015/11/26 | SS | 46 | stream-ss |
| 2015/11/27 | SS | 47 | stream-ss |
| 2015/11/28 | SS | 41 | stream-ss |
| 2015/11/08 | QG | 10 | stream-qg |
| 2015/11/09 | QG | 15 | stream-qg |
| 2015/11/10 | QG | 35 | stream-qg |
| 2015/11/11 | QG | 38 | stream-qg |
| 2015/11/12 | QG | 22 | stream-qg |
| 2015/11/13 | QG | 16 | stream-qg |
| 2015/11/14 | QG | 7 | stream-qg |
| 2015/11/15 | QG | 2 | stream-qg |
| 2015/11/16 | QG | 17 | stream-qg |
| 2015/11/17 | QG | 33 | stream-qg |
| 2015/11/18 | QG | 40 | stream-qg |
| 2015/11/19 | QG | 32 | stream-qg |
| 2015/11/20 | QG | 26 | stream-qg |
| 2015/11/21 | QG | 35 | stream-qg |
| 2015/11/22 | QG | 40 | stream-qg |
| 2015/11/23 | QG | 32 | stream-qg |
| 2015/11/24 | QG | 26 | stream-qg |
| 2015/11/25 | QG | 22 | stream-qg |
| 2015/11/26 | QG | 16 | stream-qg |
| 2015/11/27 | QG | 22 | stream-qg |
| 2015/11/28 | QG | 10 | stream-qg |
| 2015/11/08 | SY | 10 | stream-sy |
| 2015/11/09 | SY | 15 | stream-sy |
| 2015/11/10 | SY | 35 | stream-sy |
| 2015/11/11 | SY | 38 | stream-sy |
| 2015/11/12 | SY | 22 | stream-sy |
| 2015/11/13 | SY | 16 | stream-sy |
| 2015/11/14 | SY | 7 | stream-sy |
| 2015/11/15 | SY | 2 | stream-sy |
| 2015/11/16 | SY | 17 | stream-sy |
| 2015/11/17 | SY | 33 | stream-sy |
| 2015/11/18 | SY | 40 | stream-sy |
| 2015/11/19 | SY | 32 | stream-sy |
30 additional values omitted from this bounded representation.
Usage Example
@interactivethemeriver.ThemeRiver(interactivethemeriver.Config{
Label: "ThemeRiver-SingleAxis-Time",
Caption: "Six named streams across aligned daily values.",
Streams: []interactivethemeriver.Stream{
{Name: "DQ", Class: "stream-dq", Points: []interactivethemeriver.Point{
{Time: time.Date(2015, time.November, 8, 0, 0, 0, 0, time.UTC), Value: 10},
{Time: time.Date(2015, time.November, 9, 0, 0, 0, 0, time.UTC), Value: 15},
// Remaining aligned dates continue through 28 November.
}},
// TY, SS, QG, SY, and DD use the same aligned dates.
},
Layout: interactivethemeriver.Layout{BottomPercent: chart.Float(10)},
Width: "100%", Height: "500px",
Options: chart.ChartOptions{
Title: &chart.TitleOptions{Text: "ThemeRiver-SingleAxis-Time"},
Tooltip: &chart.TooltipOptions{Show: chart.Bool(true), Trigger: "axis"},
},
})Shared dates
Compare streams only over shared, strictly ordered dates. Use the table for exact readings.
Go API
v0.0.1The examples above cover behavior and composition. pkg.go.dev is the canonical reference for exported types, functions, methods, and Go documentation.
github.com/araihu/goshtoso-charts/components/interactive/themeriverEnabled, disabled, hidden, and omitted wrapper behavior, controls, export, and client transitions are shared by every chart. Review chart controls, then compare static/vector and interactive capabilities.