首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib -在极地图中绘制平滑的圆

Matplotlib -在极地图中绘制平滑的圆
EN

Stack Overflow用户
提问于 2013-11-07 12:03:27
回答 1查看 9.4K关注 0票数 10

我真的很喜欢matplotlib的极地图,并愿意继续使用它(因为我的数据点是以极坐标给出的,而且我的环境是圆形的)。

然而,在图中,我想在特定点添加给定半径的圆。

通常,我会这样做:

代码语言:javascript
复制
 ax = plt.subplot(111)
 ax.scatter(data)
 circle = plt.Circle((0,0), 0.5)
 ax.add_artist(circle)
 plt.show()

但是,在极坐标中,我不能使用circle,因为它假定是直角坐标。

我想出的想法是:生成一个具有固定径向坐标和0,2PI角坐标的点数组,或者完全切换到直角坐标。这两种解决方案都不是很令人满意-使用matplotlib还能做得更好吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-07 13:40:14

您可以设置Circletransform参数

代码语言:javascript
复制
%matplotlib inline
import pylab as pl
import numpy as np

N = 100
theta = np.random.rand(N)*np.pi*2
r = np.cos(theta*2) + np.random.randn(N)*0.1

ax = pl.subplot(111, polar=True)
ax.scatter(theta, r)
circle = pl.Circle((0.5, 0.3), 0.2, transform=ax.transData._b, color="red", alpha=0.4)
ax.add_artist(circle)

输出:

如果不喜欢使用private属性,则使用transform=ax.transProjectionAffine + ax.transAxes

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19827792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档