[Chart] Specifying sizes

Tim Docker tim at dockerz.net
Wed Jan 22 20:26:56 GMT 2014


Hi Jorden.

The Grid type was created to facilitate the internal layout of plots (ie 
allocating space to the axes, title, plot area etc). However, there's no 
reason to use it outside the library.

When the rendering area is bigger than the minimum size of the 
renderables, the extra space is allocated to the renderables according 
to their weights. In your example below, your grid cells have weights of 
0 (the default), which means that no extra space is allocated. If you 
set all the weights to 1, by replacing with this:

    let g0 = ((tval chart) .|. (tval chart)) ./. (tval chart .|. tval chart)
    let g = weights (1,1) g0

you will see the output you expect.

Tim

On 23/01/14 04:35, Jorden M wrote:
> Here's an example:
>
> The chart equation is lifted directly from the wiki. I think Grid and/or Renderable need to be changed so that they can stretch. I can probably work on it if someone's willing to point me in the right direction.
>
> import Graphics.Rendering.Chart
> import Graphics.Rendering.Chart.Backend.Cairo
> import Graphics.Rendering.Chart.Grid
> import Control.Lens
> import Data.Default.Class
>
> chart = toRenderable layout
>    where
>      values = [ ("Mexico City",19.2,e), ("Mumbai",12.9,e), ("Sydney",4.3,e), ("London",8.3,e), ("New York",8.2,e1) ]
>      e = 0
>      e1 = 25
>      pitem (s,v,o) = pitem_value .~ v
>                    $ pitem_label .~ s
>                    $ pitem_offset .~ o
>                    $ def
>      
>      layout = pie_title .~ "Relative Population"
>             $ pie_plot . pie_data .~ map pitem values
>             $ def
>
> main = do
>     
>     let g = ((tval chart) .|. (tval chart)) ./.
>             (tval chart .|. tval chart)
>
>     renderableToFile def {_fo_size = (1200,1200)} (gridToRenderable g) "file.png"
>
>
>
>
>> ----- Original Message -----
>> From: Carter Schonwald
>> Sent: 01/22/14 11:22 AM
>> To: Jorden M
>> Subject: Re: [Chart] Specifying sizes
>>
>> have you tried making the overall plot larger?
>>
>>
>> On Wed, Jan 22, 2014 at 10:44 AM, Jorden M <jrm3000 at gmx.com> wrote:
>>
>>> I took the pie chart example from the wiki and tried to stick several
>>> copies of it into a grid, which had the effect of shrinking the charts so
>>> much you can't see the pies, just the labelling. I assume this happens with
>>> more than just pie charts. I figured there must be something I could fmap
>>> into the grid that would set the size of every chart to whatever I wanted,
>>> but I don't see anything in Pie, Grid, or Renderable with which I could
>>> override the default sizing. Am I missing something simple, or can someone
>>> tell me where I should look to make a patch?
>>>
>>> Thanks,
>>> -j
>>>
>>> _______________________________________________
>>> Chart mailing list
>>> Chart at projects.haskell.org
>>> http://projects.haskell.org/cgi-bin/mailman/listinfo/chart
>>>
>
> _______________________________________________
> Chart mailing list
> Chart at projects.haskell.org
> http://projects.haskell.org/cgi-bin/mailman/listinfo/chart




More information about the Chart mailing list