マーカーに画像を使ってプロット
コード
でできる図。

解説
ax = plt.gca()
gcaはGet Current Axesの略で,axが定義されてないときにcurrent axesをaxとして定義している。[1]
image = plt.imread(image)
matplotlibでの画像の読み込み、読み込んだものは(M, N, 4)の形になることが多い。4の部分はRGBと透明度のα。[2]
im = OffsetImage(image, zoom=zoom)
OffsetImageは画像をいれる箱のような意味で、画像を指定して読み込む。zoomでもとの大きさに対するサイズをかえることができて、小さくするとOffsetImageは小さくなる。
x, y = np.atleast_1d(x, y)
np.atleast_1dでx, yを1次元以上にする。at leastなので、2次元データとかはそのままとなる。
artists = []
for x0, y0 in zip(x, y):
ab = AnnotationBbox(im, (x0, y0), xycoords='data', frameon=False)
artists.append(ax.add_artist(ab))
AnnotationBboxで(x,y)の位置にimの画像を順次いれていく。imは画像ファイルそのものではなく、画像が入った箱(OffsetImage)とする必要がある。xycoordsは(x, y)の位置をどういう風にするかの設定で、’data’とすることでデータ値にもとづいて位置が決定する。frameonは画像の枠の設定でFalseで枠無しとなる。
x,y =np.random.rand(2, 20)
ランダムデータを生成。[3]
imscatter(x, y, image_path, ax=ax, zoom=.25)
ax.plot(x, y, 'ko',alpha=0)
imscatter でプロット, zoomで画像の大きさを調整できる。alpha=0で通常のプロットは見えなくしてある。
他の画像でプロット
マレーバクプロット

ベーグルプロット

コメント