[Chart] Should we fix the layout API?

Jan Bracker jan.bracker at googlemail.com
Thu Oct 10 09:32:50 BST 2013


I am excited to see the next release :)


2013/10/8 Tim Docker <tim at dockerz.net>

> 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<https://github.com/timbod7/haskell-chart/blob/master/chart/Graphics/Rendering/Chart/Layout.hs#L120>
>> [2] https://github.com/timbod7/**haskell-chart/pull/10<https://github.com/timbod7/haskell-chart/pull/10>
>> [3] https://github.com/jbracker/**haskell-chart/blob/**
>> ed8b43075a0ac3a3e8c026140881b6**2142d63a3f/chart/Graphics/**
>> Rendering/Chart/Layout.hs#L148<https://github.com/jbracker/haskell-chart/blob/ed8b43075a0ac3a3e8c026140881b62142d63a3f/chart/Graphics/Rendering/Chart/Layout.hs#L148>
>> [4] https://github.com/jbracker/**haskell-chart/blob/**
>> ed8b43075a0ac3a3e8c026140881b6**2142d63a3f/chart/Graphics/**
>> Rendering/Chart/Layout.hs#L205<https://github.com/jbracker/haskell-chart/blob/ed8b43075a0ac3a3e8c026140881b62142d63a3f/chart/Graphics/Rendering/Chart/Layout.hs#L205>
>>
>
>
> ______________________________**_________________
> Chart mailing list
> Chart at projects.haskell.org
> http://projects.haskell.org/**cgi-bin/mailman/listinfo/chart<http://projects.haskell.org/cgi-bin/mailman/listinfo/chart>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://projects.haskell.org/pipermail/chart/attachments/20131010/79602515/attachment.htm>


More information about the Chart mailing list