I have discovered, from the mailing list, the easy way to draw a circle in linear space:

cx = 700

cy = 700

r = 1000

xmin = cx - r

xmax = cx + r

ymin = cy - r

ymax = cy + r

cir = Circle( (cx,cx), radius=r,facecolor='w',edgecolor='b')

a = gca()

a.add_patch(cir)

axis([xmin,xmax,ymin,ymax])

axis('equal')

However, when trying to overplot a circle on an existing log/log plot, I get a circle section:

e = [70,1,1,12,7,185,6,3,0,1015,6,222,500,0,661,105,0,8706,0,23,131,0,0,0,6,22,1,4,0]

o = [180,2,0,15,13,3,0,0,0,20,6,2000,9748,0,38,100,0,20023,0,2,0,0,0,0,1,0,0,0,1]

f1 = figure()

loglog(o,e,'b.')

hold('on')

cx = 700

cy = 700

r = 1000

xmin = cx - r

xmax = cx + r

ymin = cy - r

ymax = cy + r

cir = Circle( (cx,cx), radius=r,facecolor='w',edgecolor='b')

a = gca()

a.add_patch(cir)

axis([xmin,xmax,ymin,ymax])

axis('equal')

How can I plot a circle in log space?

As an additional aside, I've discovered that even if I define the points that make up a circle (in linear space), I cannot plot a smooth line through them using the plot() function:

def pol2cart(th,r):

x = r*cos(th)

y = r*sin(th)

return (x,y)

def drawCircle(cx,cy,radius,np,style):

theta = linspace(0,2*pi,np)

rho = ones((1,np))*radius

x,y = pol2cart(theta,rho)

x = x + cx

y = y + cy

plot(x,y,style)

cx = 700

cy = 700

r = 1000

drawCircle(cx,cy,r,1000,'b')

When I look at the resulting plot, I see empty axes. If I change the plot style to 'b.', then I see the circle. Is this a bug or an undocumented feature?

Thanks,

Mike Hearne