我正在使用matplotlib.patches.rectangle包来绘制多个矩形。在Y轴上,我试着给这些矩形命名。矩形的数量不是固定的,因此标签的位置必须根据矩形的数量动态变化。
下面我已经附加了不同场景的图像:1个rect或2个rect或3个rect等等。目前,我已经在文本之间手动设置了Y标签,但有没有办法自动使文本显示在矩形的中心,这取决于矩形的数量。
我正在为3个不同的情况使用手动空间,但在现实中,情况不会局限于3个,所以需要更动态的东西。
我的代码(用于2-rect):ax.set_ylabel('LAYER-1 LAYER-2', color='g')
我的代码(用于3-rect):ax.set_ylabel('LAYER-1 LAYER-2 LAYER-3', color='g')

发布于 2020-08-20 14:52:35
可能还有其他方法可以做到这一点,但我使用了ax.text(x,y,text)进行设置。X值可以是负数。文本位置手动调整。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig = plt.figure(figsize=(4,3),dpi=144)
ax = fig.add_subplot(111)
for i in range(4):
y_pos = 5+(i*20)
r = patches.Rectangle(xy=(2, y_pos), width=96, height=10, color='r', fill=False)
ax.text(-22, y_pos+2, 'Layer-{}'.format(i), color='g')
ax.add_patch(r)
ax.set_xlim(0,100)
ax.set_ylim(0,100)

https://stackoverflow.com/questions/63498916
复制相似问题