この例はofficial exampleから変更されています。散布図にカラーマップを使用するための重要な部分は、以下のとおりです。
x.data
とy.data
は、変換された座標です。
c = np.random.randint(1, 500, size=len(lats))
は、各点に対応するカラーマップ内の色にマッピングされる値です。
あなたのために必要ではないかもしれないいくつかの部分は、以下のとおりです。
import urllib, os
from netCDF4 import Dataset
import numpy as np
filename, _ = urllib.urlretrieve('http://coastwatch.pfeg.noaa.gov/erddap/tabledap/apdrcArgoAll.nc?longitude,latitude,time&longitude>=0&longitude<=360&latitude>=-90&latitude<=90&time>=2010-01-01&time<=2010-01-08&distinct()')
dset = Dataset(filename)
lats = dset.variables['latitude'][:]
lons = dset.variables['longitude'][:]
dset.close()
os.remove(filename)
c = np.random.randint(1, 500, size=len(lats))
x, y = m(lons,lats)
この部分は、データサンプルを生成するために使用されています。実際のデータに置き換えることができます。
from mpl_toolkits.axes_grid1 import make_axes_locatable
divider = make_axes_locatable(ax)
fig.colorbar(pc, cax=divider.append_axes("right", size="5%", pad=0.05))
これは、カラーバーのサイズはプロットに一致するようにするbogatron's answerの直接的なアプリケーションです。それを維持するかどうかはあなたの選択です。
import urllib, os
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
from mpl_toolkits.basemap import Basemap
from netCDF4 import Dataset
import numpy as np
# data downloaded from the form at
# http://coastwatch.pfeg.noaa.gov/erddap/tabledap/apdrcArgoAll.html
filename, _ = urllib.urlretrieve('http://coastwatch.pfeg.noaa.gov/erddap/tabledap/apdrcArgoAll.nc?longitude,latitude,time&longitude>=0&longitude<=360&latitude>=-90&latitude<=90&time>=2010-01-01&time<=2010-01-08&distinct()')
dset = Dataset(filename)
lats = dset.variables['latitude'][:]
lons = dset.variables['longitude'][:]
dset.close()
os.remove(filename)
c = np.random.randint(1, 500, size=len(lats))
# draw map with markers for float locations
fig = plt.figure()
ax = fig.add_subplot(111, axisbg='w', frame_on=True)
fig.set_size_inches(18.5, 10.5)
m = Basemap(lon_0=180, ax=ax)
x, y = m(lons,lats)
pc = m.scatter(x.data, y.data, 20, marker='o', c=c, lw=.25, alpha =0.9, antialiased=True, zorder=3, cmap='summer')
m.fillcontinents(color='#555555')
divider = make_axes_locatable(ax)
fig.colorbar(pc, cax=divider.append_axes("right", size="5%", pad=0.05))
plt.show()
本当にあなたのデータがどのようなものか知ってはいけません。 'colormap(labels.astype(float)) 'とはどういう意味ですか?呼び出し可能なndarray?エラーメッセージがありますか?より完全で検証可能な例を提供することは可能でしょうか? –
私は確信していません、それはkmeansモデルの出力です。データは緯度経度を持つ単なるcsvファイルです。 astype(フロート)がなければ何もしません。エラーメッセージは表示されませんが、バックグラウンドベースマップ自体を除いてプロットするものはありません。 – Rolando
私の容疑者は問題は 'colormap(labels.astype(float))'から来ています。 'colormap'は' ndarray'であり、呼び出し可能ではないかもしれません。私はあなたのデータを見たり、関連するサンプルをあなたの問題を解決するのに役立つと言います。私は昨日あなたから別の質問に答えたことを実感します。これらはあなたの問題を解決することができません申し訳ありません。私はベストを尽くし、あなたの例に近いかもしれない下の例を作った。うまくいけばそれは少し助けてください。 –