Steve,

I guess I should have highlighted the difference. For my application I 
need the circle radii to be given in data coordinates.  For the curious, 
I'm plotting something very similar to Dorling Cartograms. I did look in 
the source of "scatter" for clues, but it uses a 20 sided polygon to 
approximate a circle. It looks like scatter_classic did what I wanted, 
but that's been removed :-(.

- Andrew

Stephen George wrote:
> It *seems* like it already does what you are trying to do?, maybe I'm 
> missing something in my understanding.
>
> Steve
>
>
>
> Andrew McLean wrote:
>> I'm a new user of matplotlib (athough I have been using both Matlab and
>> Python for years).
>>
>> I have an application where I need to display data as a set of filled
>> circles. The centre and the radius of the circles are both specified in
>> data coordinates. The data points have an additional scalar attribute,
>> which is displayed using a pseudo-colour mapping.
>>
>> I've hacked something together where the circles are approximated by
>> polygons using either the axis fill method or the pylab fill function. I
>> select the colour by calling the get_rgba method of a ScalarMappable
>> object. In the following code snippet c is a tuple containg the x and y
>> coords of the centre of the circle, the radius, and a scalar "value"
>>
>> theta = arange(numSegs+1) * 2.0 * math.pi / numSegs
>> cos_theta = cos(theta)
>> sin_theta = sin(theta)
>> for c in cart:
>>     x = c[1] + c[3] * cos_theta
>>     y = c[2] + c[3] * sin_theta
>>     v = c[4]
>>     fill(x, y, facecolor=mapper.to_rgba(v), linewidth=0.5)
>>
>> It all works. However, I saw in the API documentation (and the source)
>> that there is a Circle object in patch. I was hoping that using this
>> rather than polygons would give better quality output and possibly
>> smaller files. Now I can instantiate it
>>
>>         circle = Circle((x,y), c[3], facecolor=cmapper.to_rgba(v))
>>
>> but can't work out what to do with it! I've tried
>>
>>         ax.add_patch( circle )
>>
>> and also
>>
>>         trans = blend_xy_sep_transform( ax.transAxes, ax.transData  )
>>         circle.set_transform( trans )
>>         ax.add_patch( circle )
>>
>> Neither work. Any ideas?
>>
>> Regards,
>>
>> Andrew
>>
>>


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to