我正在绘制matplotlib中具有不同颜色的矩形。我希望每种类型的矩形都有一个在图例中出现一次的标签。我的代码是:
import matplotlib.patches as patches
fig1 = plt.figure()
ax = plt.subplot(1,1,1)
times = [0, 1, 2, 3, 4]
for t in times:
if t % 2 == 0:
color="blue"
else:
color="green"
ax.add_patch(patches.Rectangle((t, 0.5), 0.1, 0.1,
facecolor=color,
label=color))
plt.xlim(times[0], times[-1] + 0.1)
plt.legend()
plt.show()
问题是每个矩形在图例中出现多个。我想在图例中只有两个条目:一个标有“蓝色”的蓝色矩形和一个标有“绿色”的绿色矩形。怎么能实现呢?
答案 0 :(得分:0)
如文档https://biztalkdeployment.codeplex.com/所示,您可以通过指定图形对象的句柄来控制图例。在这种情况下,需要五个对象中的两个,因此您可以将它们存储在字典中
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig1 = plt.figure()
ax = plt.subplot(1,1,1)
times = [0, 1, 2, 3, 4]
handle = {}
for t in times:
if t % 2 == 0:
color="blue"
else:
color="green"
handle[color] = ax.add_patch(patches.Rectangle((t, 0.5), 0.1, 0.1,
facecolor=color,
label=color))
plt.xlim(times[0], times[-1] + 0.1)
print handle
plt.legend([handle['blue'],handle['green']],['MyBlue','MyGreen'])
plt.show()