0

私はタスクですでに数時間立ち往生しています。

私は、300000人以上の居住者と座標を持つすべての都市のExcelファイルを持っています。それらを世界地図にプロットする必要があります。このために、次のコードがあります。

from IPython import get_ipython
get_ipython().magic('reset -sf') 
get_ipython().magic('matplotlib')
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
plt.close('all')
#%%
dirname=('C:\\Users\\Guido\\Documents\\Geologie\\Programmeren\\Scripts van mij\\Deftig\\')
filename='WUP2014-F12-Cities_Over_300K.xls'
xlsfile = pd.ExcelFile(dirname + filename)
drframe = xlsfile.parse("DATA", skiprows = 16)
urbpop = DataFrame(drframe)
lat = urbpop["Latitude"]
lon = urbpop["Longitude"]
m = Basemap(projection='robin',lon_0=0,resolution='c')
m.drawcoastlines()
m.drawcountries()
lons,lats = m(list(lon), list(lat))
m.scatter(lons, lats, s = 1.3, color ='blue')

エクセルファイルはこんな感じ

出力図は次のようになります

ここで、各大陸のポイントに別の色を付ける必要があります (たとえば、南アメリカのオレンジ、ヨーロッパの青...)。

また、各ポイントにその住民の数をラベル付けする必要があります。

何か案は?

4

1 に答える 1

0

どうにかして大陸情報を別の列としてExcelファイルに提供するか、独自のファイルを作成する必要があります.json形式のcontinent.datなどです。

{ 'south-america': ['Argentina', ,'Brazil', ...],
  'north-america': ['Canada', 'United States', ...],
  ... 
}

この情報を使用して、母集団データフレーム データを再グループ化できます。それが完了したら、異なる色を割り当てて、各大陸のプロセスに従うことができます。

Pandas groupby は、Excel ファイルに大陸情報を追加する場合に適した方法です。

http://pandas.pydata.org/pandas-docs/stable/groupby.html

于 2016-04-09T21:25:09.593 に答える