[Chart] Should we fix the layout API?
Tim Docker
tim at dockerz.net
Tue Oct 8 22:40:24 BST 2013
I received 4 +1 votes, and none neutral or negative.
I'll include this change in the next release (1.1), which I will make in
a couple of weeks or so. This will also include Jan's extra code to
improve the file size and rendering speed for SVG output.
Tim
On 01/10/13 23:57, Tim Docker wrote:
> Hi,
>
> The most recent release (1.0) changed the API of the library quite
> substantially: mostly due to the use of lens, but also due to some of
> Jan's changes.
>
> Before we close the door on API breaking changes, I'd like to consider
> one more. The Layout1 type in the library combines a plot area with
> axes, a title, and a legend [1]. It is parameterized by the types of
> the x and y axes. Whilst there is only a single y type, there are
> actually two potentially independent y axes, one on the left and one
> on the right hand side. You choose which axis you are plotting against
> by wrapping the plots in either Left or Right. There's some additional
> ugliness (_layout1_axes_control), to tie the two axes together if you
> are only plotting a single y range but want axes drawn on both sides
> of the chart.
>
> I had intended to clean this up for some time, but hadn't found time
> to do so. Jan kindly had a go in the last week or so of GSOC. The
> results can be seen here [2]. In essence, the Layout1 type has been
> split into a simpler Layout type for where you only have a single y
> axis [3], and a more flexible LayoutLR type with independent types for
> the left and right axes [4].
>
> I think this is a worthwhile change, but it does affect the API in
> minor ways for most charts. I'd really appreciate some feedback on
> this - Please respond with +1/0/-1 if it affects you.
>
> Thanks,
>
> Tim
>
>
> [1]
> https://github.com/timbod7/haskell-chart/blob/master/chart/Graphics/Rendering/Chart/Layout.hs#L120
> [2] https://github.com/timbod7/haskell-chart/pull/10
> [3]
> https://github.com/jbracker/haskell-chart/blob/ed8b43075a0ac3a3e8c026140881b62142d63a3f/chart/Graphics/Rendering/Chart/Layout.hs#L148
> [4]
> https://github.com/jbracker/haskell-chart/blob/ed8b43075a0ac3a3e8c026140881b62142d63a3f/chart/Graphics/Rendering/Chart/Layout.hs#L205
More information about the Chart
mailing list