使用matplotlib在图表中显示带有彩色边框的图像

我想在图表上绘制带有图像的图形。我正在进行k-means聚类,之后我想在每个聚类上显示图像,并使用相同的边框颜色。

我有一些代码,基本上是将图像放置在图表上,并带有黑色边框

fig = plt.gcf()fig.clf()ax = plt.subplot(111)# 添加第一张图像for i in range(0, len(dataset['val'].path)):        ab = AnnotationBbox(OffsetImage(img, zoom=.15, cmap='gray'),                        [reduced_data[i][0], reduced_data[i][1]],                        frameon=True,                        xybox=(10, 10),                        xycoords='data',                        boxcoords="offset points",                        arrowprops=dict(arrowstyle="-"))    ax.add_artist(ab)plt.draw()plt.show()

我在scickit learn文档中查了一些教程,我也查看了matplotlib网页上的AnnotationBboxOffsetImage构造函数,但没有结果。我想知道是否有办法更改插入图表中图像的边框颜色,使其与我为每个聚类指定的颜色相匹配。


回答:

你可以使用bboxprops=dict(edgecolor='red')来设置你的AnnotationBbox的边界框。一个最小的示例,

import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.offsetbox import OffsetImage, AnnotationBboxfig, ax = plt.subplots()im = OffsetImage(np.arange(100).reshape((10, 10)))ab1 = AnnotationBbox(im, (0.5, 0.5),                    bboxprops =dict(edgecolor='red'))ab2 = AnnotationBbox(im, (0.75, 0.75),                    bboxprops =dict(edgecolor=[0.2,1.,0.5]  ))ax.add_artist(ab1)ax.add_artist(ab2)plt.show()

这将得到,

enter image description here

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注