Hi Tim,
Thank you for commenting. As I said before, Chart is a wonderful library. Although it has most features we need, I personally feel that it's cumbersome to make plots or define new plots by Chart. So I would like to experiment a new library which makes this process more natural and intuitive. For example, to make a plot, we can
1. generate axes from data by calling:
xAxis = realAxis rangeOfX padding opts
yAxis = realAxis rangeOfY padding opts
2. Assemble axes:
area = plotArea 5.5 4.8
( yAxis -- left axis
, def -- top axis, using default axis which is a line
, def -- right axis
, xAxis -- bottom axis
)
3. make delayed plots which are functions. Given a point map provided by plot area, they can generate actual plots.
ps = points xs ys def
l = line xs ys def
3. attach any number and any types of plots to plot area:
plot = area <+ (ps, BL) <+ (l, BL)
We have four axes in plot area, so you can attach plots to plot area by any two of the axes, for example, you can do
area <+ (ps, BR) <+ (l, BL) <+ (l, TL) <+ (l, TR)
Each intermediate step can be easily customized separately and independently without worrying about other parts. And styling can be done by calling APIs of Diagrams.