Python matplotlib basemap,通过matplotlib中的坐标绘制纬度和经度图形

Python matplotlib basemap,通过matplotlib中的坐标绘制纬度和经度图形,python,matplotlib,geocoding,matplotlib-basemap,Python,Matplotlib,Geocoding,Matplotlib Basemap,我有下面的坐标列表,其中大部分都在美国。我用谷歌应用程序的fusiontables检查了它们,看看它们会显示在哪里。这样做之后,很明显matplotlib显示的值只是。。。垃圾 根据google fusion表,我的输出应该更像。。。事实上,关键是大部分坐标都在美国。 这段代码描绘了安塔提卡大陆的大部分价值观。我不打算提供屏幕截图,因为我认为除了这段代码不起作用之外,它并没有传达任何有用的信息。 latitude和longitutte坐标来自谷歌地图api()。我应该如何修改这些坐标,以便在m

我有下面的坐标列表,其中大部分都在美国。我用谷歌应用程序的fusiontables检查了它们,看看它们会显示在哪里。这样做之后,很明显matplotlib显示的值只是。。。垃圾

根据google fusion表,我的输出应该更像。。。事实上,关键是大部分坐标都在美国。

这段代码描绘了安塔提卡大陆的大部分价值观。我不打算提供屏幕截图,因为我认为除了这段代码不起作用之外,它并没有传达任何有用的信息。
latitude
longitutte
坐标来自谷歌地图api()。我应该如何修改这些坐标,以便在matplotlib中绘制它们?我认为latlon参数可以帮助我解决这个问题,但是…

这看起来像是我在处理打印坐标时有时会遇到的一个常见问题:数据源和打印方法希望坐标数据的顺序不同

我想解释是,尽管“纬度和经度”是指坐标对的最传统的排序,但当打印进入场景时,经度相当于X轴,而纬度相当于Y轴,因此一些API(一个著名的例子是KML坐标)使用“经度/纬度”排序


最后,两者都是有效的,当然,这只是一个惯例问题,但有时我们必须从一个惯例转换到另一个惯例。

如果你交换纬度/经度,会发生什么?谷歌API的某些部分(最著名的是KML坐标)有一个违反直觉的排序。。。。简言之,交换实际上解决了这个问题。我发布的代码与我使用的代码不完全相同,昨天我还以为我已经测试了如何交换纬度-经度排序。我的代码将api中的所有纬度存储到一个dataframe列中,并将经度存储到另一列中。当我进行更改,将“经度”列加载为x_线,将“纬度”列加载为y_线时,正确地绘制了点。很高兴知道它起作用了。我把它贴出来作为一个答案,以防你愿意接受。
 latitudes = [37.09024, -37.605, 43.04819620000001, 29.7604267, 47.6062095, 34.0232431, 31.968598800000002, None, None, None, 44.1455225, 42.09868669999999, 42.360082500000004, 36.737798100000006, 38.57670170000001, 34.0522342, 31.230390399999997, None, 52.922530099999996, 56.130366, 38.9071923, 34.187575200000005, 41.499320000000004, 47.9789848, 39.2903848, 19.724110600000003, 38.9071923, 39.32098010000001, 44.2311717, 41.8498339, 40.7127753, 49.4928119, 55.8417014, None, 38.9071923, None, 30.267153000000004, 46.7297771, 36.9741171, 40.0583238, 37.387474, 37.548269700000006, 40.902988, 33.7489954, -25.274398, 27.950575, 43.653226000000004, 37.485215200000006, 38.9071923]
longitudes =  [-95.712891, 145.14600000000002, -76.0488458, -95.36980279999999, -122.33207079999998, -84.36155550000001, -99.9018131, None, None, None, -88.49151540000001, -75.91797380000001, -71.0588801, -119.78712469999999, -92.17351640000001, -118.24368490000002, 121.4737021, None, -1.4746186000000001, -106.34677099999999, -77.03687070000001, -118.5900635, -81.6943605, -122.2020795, -76.6121893, -155.08681930000003, -77.03687070000001, -111.0937311, -76.48595440000001, -87.8806738, -74.0059728, -117.29483429999999, -3.2155866, None, -77.03687070000001, None, -97.7430608, -117.18173770000001, -122.0307963, -74.40566120000001, -122.05754340000001, -121.98857190000001, -74.9577372, -84.3879824, 133.775136, -82.4571776, -79.3831843, -122.2363548, -77.03687070000001]


 x,y= list(zip(*sorted(zip(latitudes, longitudes), key=lambda it: it[0])))
 plt.figure(figsize=(12, 6))
 map = Basemap(projection='mill', lon_0=180)
 something = map.scatter(x, y, latlon=True, marker='.', color='g', s=24, zorder=10)
 map.drawparallels(np.arange(-90,90,30),labels=[1,0,0,0])
 map.drawmeridians(np.arange(map.lonmin,map.lonmax+30,60),labels=[0,0,0,1])
 map.fillcontinents(color='coral',lake_color='aqua')
 map.drawcountries()
 plt.title('Small Amount of Data Plot')
 plt.show()