如何使用Patches
在下图中的外圆(左上)内绘制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
图像是
答案 0 :(得分:1)
在您的绘图上绘制x的简单快捷方法是使用plt.scatter。您可以使用x标记将x放置在您所拥有的圆的中心。检查以下代码,它将x绘制在最左圆的中心。您需要为标记提供的坐标与创建圆时传递的相对坐标相同。
import matplotlib.pyplot as plt
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)
mymarker = plt.scatter(-0.02, 0.9, s=300, c='red', transform=axColor.transAxes, marker='x', clip_on=False)
axColor.add_artist(mymarker)
f.savefig('plot_with_x.png')
我还在这里附上了图片。您可以通过调整s的值来调整标记的大小,并使用c更改颜色。 希望这会有所帮助。