2016-12-04 17 views
-1

散布図の各サブプロットの背後に画像を追加しようとしています。私は私のイメージがすべてのサブプロット空間を占めるようにしたい。しかし、私はスキャッタポイントをイメージにマッピングしたくありません。つまり、スキャッタポイントの軸をイメージのそれとは独立させたいと思います。scatter pointの軸と独立したscatterサブプロットの後ろに画像を追加

サブプロットをしながらそのように私は単純に、画像を挿入するimread()implot()を使用します。

im = plt.imread("/Users/mac/Desktop/image.jpeg") 
two = plt.subplot(222) 
implot = plt.imshow(im) 
plt.title('4-8 Hz') 
plt.scatter(X,Y, s=100, marker ='o', c=AveragedHursts4to8, cmap = cm.plasma) 
plt.colorbar() 
two.axis('off') 

私がダウンして、以下の一番右の画像、どこ、明確に、画像の軸と散布ポイント取得軸は共有されます。

私は同様に、第一の軸と散乱点に設定された第2軸として設定された画像と、画像のための軸の新しいセットを作成するtwiny()機能を使用しようとした:

onetwin = plt.subplot(221) 
plt.title('1-4 Hz') 
implot = plt.imshow(im, zorder=1) 
onetwin.axis('off') 
one = onetwin.twiny() 
plt.scatter(X,Y, s=100, marker ='o', c=AveragedHursts1to4, cmap = cm.plasma, zorder = 2) 
plt.colorbar() 
one.axis('off') 

そこでは、左端の画像が得られます。そこでは、スキャッタポイントがy軸上で押し縮められ、何らかの理由で画像が縮小されています。

私は双子のための軸の作成の順序を切り替えると、画像はサブプロット全体を占め、散布ポイントは全く表示されません。

提案?

enter image description here

答えて

0

私が思い付いた最も簡単、最速の解決策は、中xとyについて解くことである。

largest_x_coodinate_value(X)= image_in_pixelsのx_dimension

largest_y_coordinate_value(Y)= y_dimension_of_image_in_pixels

そして、計算されたx、yの値でX座標とY座標を含むnumpy配列上でベクトル化された乗算を行い、座標を画像のサイズ

enter image description here

1

私の提案はそのまま点の位置のままにし、それに応じて背景画像をスケーリングすることであろう。そのためにextentキーワードをimshowに使用できます。

以下の例では、ランダムな点を4つの異なるスケールでプロットします。エクステントキーワードを使用して、画像が散布図のディメンションにスケーリングされるたびに

import matplotlib.pyplot as plt 
import numpy as np 

x = np.random.rand(8*8).reshape((8,8)) 
image = plt.imread("https://upload.wikimedia.org/wikipedia/en/2/27/EU_flag_square.PNG") 

fig, ax = plt.subplots(ncols=4, figsize=(11,3.8)) 

for i in range(len(ax)): 
    ax[i].scatter(x[2*i,:]*10**(i-1), x[2*i+1,:]*10**(i-1), c="#ffcc00", marker="*", s=280, edgecolors='none') 
    xlim = ax[i].get_xlim() 
    ylim = ax[i].get_ylim() 
    mini = min(xlim[0],ylim[0]) 
    maxi = max(xlim[1],ylim[1]) 
    ax[i].imshow(image, extent=[mini, maxi, mini, maxi]) 
plt.tight_layout() 

plt.show() 

enter image description here

関連する問題