2017-02-17 3 views
1

私は、ベースマップからマップ上に一連の緯度/経度の散布図を作成しています。私は、異なる緯度/経度のデータを使って何千ものプロットを作成する予定です。時間を節約するために、私は一度だけマップオーバーレイを描きたかった:matplotlibのプロット間のマップオーバーレイを維持する

map = Basemap(epsg=3395, projection='merc', lat_0=59.45, lon_0=10.5, 
resolution = 'h', 
llcrnrlon=minlong, llcrnrlat=minlat, 
urcrnrlon=maxlong, urcrnrlat=maxlat 
map.arcgisimage(service='ESRI_Imagery_World_2D', xpixels=3000, verbose=True) 

しかし、私は新しいものをプロットする前に、私の以前の散布をクリアする手立てを見つけていません。

for each set in sets: 
    x = set[0] 
    y = set[1] 
    x,y = map(x,y) 
    plt.scatter(x,y, s=2.5, alpha=1, color=c, edgecolors='none') 
    plt.savefig('title.png', format='png', bbox_inches='tight', dpi=500) 

私は次のような場合:

plt.clf() 

または

plt.close() 

私は私のマップを再描画する必要があります。私が何も持っていなければ、以前の反復からの散布図がプロットされます。だから、どのように私はすべての散布図データを削除しますが、マップデータを保持しますか?

答えて

1

散布図のデータを変更するのはどうですか?

# save an empty scatter plot 
scat = plt.scatter([], [], s=2.5, alpha=1, color=c, edgecolors='none') 
for each set in sets: 
    # The data needs to be written as [(x1, y1), (x2, y2), ...] 
    scat.set_offsets([xy for xy in zip(x, y)]) 
    plt.savefig("...") 
+0

はあなたの提案を実装するときに、私は次のエラーを取得する、ありがとう: 'スキャット、= plt.scatterを([]、[]、= 2.5、アルファ= 1秒、カラー= C、edgecolors =」 none ') TypeError:' PathCollection 'オブジェクトは反復可能ではありません。 – bjornasm

+1

コンマは使用しないでください。 'scat = plt.scatter(...)' – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnestあなたは正しいです。ありがとう! – pingul

関連する問題