1
Traceback (most recent call last): File "example.py", line 41, in eq_map.drawgreatcircle(y,x,y2,x2,linewidth=6,color='b') File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/mpl_toolkits/basemap/init.py", line 2893, in drawgreatcircle npoints = int((dist+0.5*1000.*del_s)/(1000.*del_s)) TypeError: can only concatenate list (not "float") to list
Pythonコード:
アレイエラーメッセージから複数greatcircleパスをプロット
import csv # Open the data file. filename = 'sample.csv' # Create empty lists for the latitudes and longitudes. lats, lons = [], [] lats2, lons2 = [], [] # Read through the entire file, skip the first line, # and pull out just the lats and lons. with open(filename) as f: # Create a csv reader object. reader = csv.reader(f) # Ignore the header row. next(reader) # Store the latitudes and longitudes in the appropriate lists. for row in reader: lats.append(float(row[1])) lons.append(float(row[2])) lats2.append(float(row[4])) lons2.append(float(row[5])) from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt import numpy as np eq_map = Basemap(projection='merc',llcrnrlat=-80,urcrnrlat=80,llcrnrlon=-180,urcrnrlon=180,lat_ts=20,resolution='c') eq_map.drawcoastlines() eq_map.drawcountries() eq_map.fillcontinents(color = 'gray') eq_map.drawmapboundary() eq_map.drawmeridians(np.arange(0, 360, 30)) eq_map.drawparallels(np.arange(-90, 90, 30)) x,y = eq_map(lons, lats) x2,y2 = eq_map(lons2,lats2) eq_map.drawgreatcircle(y,x,y2,x2,linewidth=6,color='b') plt.show()
Sample.csv
Origin,origLat,origLon,Dest,destLat,destLon
"jfk",40.641311,-73.778139,"lax",33.941589,-118.40853
"teb",40.849023,-74.062953,"mia",34.730283,136.508588