.imshow()画图添加图例方法

当使用ax.imshow()函数画图时,无法简单的像使用plt.plot(label=xxx)时添加图例。
.imshow()的使用方法不再赘述。假设你要画的数组为base_map为:

base_map = [
            "SSSDD",
            "SDSSD",
            "DSSDD",
            "SSDSD",
            "DSSSG"
            ]

添加图例可以使用这段代码:

base_map = np.array([list(s) for s in base_map])
elements = np.unique(base_map)

map_to_plot = np.zeros_like(base_map, dtype=float)

for i, el in enumerate(elements):
    map_to_plot[base_map == el] = float(i)
plt.tick_params(axis='both',
               which='both',
               bottom=False,
               left=False,
                labelbottom=False,
                labelleft=False)
im = plt.imshow(map_to_plot)
if legend:
    # pdb.set_trace()
    # values = np.unique(map_to_plot.ravel())
    values = np.array([0., 0.5, 1])
    colors = [im.cmap(im.norm(value)) for value in values]
    labels = ['Danger', 'Goal', 'Safe']
    patches = [
        mpatches.Patch(color=colors[i], label=labels[i])
        for i in range(len(values))]
    plt.legend(handles=patches, bbox_to_anchor=(1.01, 1), loc=2,
               borderaxespad=0., frameon=False)

结果如图:
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值