Python 使用matplotlib中的面片在圆内绘制十字

Python 使用matplotlib中的面片在圆内绘制十字,python,matplotlib,Python,Matplotlib,如何使用面片在下图中的外圆(左上)内绘制X?我不想绘制数据点,因为轴限制可能会改变(我正在另一个图形中绘制),或者当我尝试使用text时,字体看起来很奇怪。我有这个 f = plt.figure(figsize=(6, 6)) ax = f.add_subplot(111) box = ax.get_position() axColor = plt.axes([box.x0 + 0.05, box.y0 + 0.05, 0.6, 0.6], projec

如何使用
面片
在下图中的外圆(左上)内绘制X?我不想绘制数据点,因为轴限制可能会改变(我正在另一个图形中绘制),或者当我尝试使用
text
时,字体看起来很奇怪。我有这个

f = plt.figure(figsize=(6, 6))
ax = f.add_subplot(111)

box = ax.get_position()
axColor = plt.axes([box.x0 + 0.05, box.y0 + 0.05,
                    0.6, 0.6], projection='polar')

axColor.set_yticks([])
axColor.set_xticks([])
axColor.set_rlim(0, 50)

circle = plt.Circle((0., 0.), 10, transform=axColor.transData._b,
                   edgecolor='k', facecolor='None', linewidth=2)
axColor.add_artist(circle)
circle = plt.Circle((0., 0.), 3, transform=axColor.transData._b, 
                   color='k', linewidth=2)
axColor.add_artist(circle)

circle = plt.Circle((-0.02, 0.9), 0.1, transform=axColor.transAxes,
                   edgecolor='k', facecolor='None', linewidth=2, clip_on=False)
axColor.add_artist(circle)
# Cannot draw an X
图像是


在你的绘图上画一个x的简单而快速的方法是使用plt.scatter。您可以使用x标记将x放置在圆的中心。检查以下代码,它在最左侧圆的中心绘制x。需要为标记提供的坐标与创建圆时传递的相对坐标相同

导入matplotlib.pyplot作为plt
f=plt.图(figsize=(6,6))
ax=f.add_子批次(111)
box=ax.get_位置()
axColor=plt.轴([box.x0+0.05,box.y0+0.05,
0.6,0.6],投影(极轴)
axColor.set_yticks([])
axColor.set\u xticks([])
axColor.set_rlim(0,50)
圆=plt.圆((0,0.),10,变换=axColor.transData._b,
edgecolor='k',facecolor='None',线宽=2)
axColor.add_艺术家(圆圈)
圆=plt.圆((0,0.),3,变换=axColor.transData._b,
color='k',线宽=2)
axColor.add_艺术家(圆圈)
圆=plt.circle(-0.02,0.9),0.1,transform=axColor.transAxes,
edgecolor='k',facecolor='None',线宽=2,剪裁=False)
axColor.add_艺术家(圆圈)
mymarker=plt.scatter(-0.02,0.9,s=300,c='red',transform=axColor.transAxes,marker='x',clip_on=False)
axColor.add_艺术家(mymarker)

f、 savefig('plot_with_x.png')
图像错误。。。Firefox检测到服务器正在以一种永远无法完成的方式重定向对此地址的请求。Chrome:i.stack.imgur.com重定向您的次数太多了。我不太明白您为什么需要两个轴,但您是否尝试使用
\times
符号
ax.text(-0.02,0.9,“$\times$”,ha=“center”,va=“center”,transform=ax.transAxes)
是的,我试过了,但是文本的位置不像圆形补丁那样精确,它会稍微移动。此外,如果您重新缩放图形大小,则必须手动增大/减小字体大小。我需要另一个轴内的图形,因为我使用极轴作为圆形色条(使用pcolormesh)。谢谢,这很有帮助。但是,如果减小地物大小,则必须手动重新缩放标记大小。它与圆不同,因为它总是有一个固定的半径。如果有人有不同的答案,我会等。在这种情况下,我想您可以根据圆的半径调整大小。标记大小的变化应与参数s的变化成线性关系。也许你可以把这个标记设置成某个系数*半径的圆。