标签: matplotlib-basemap

没有使用Python/Basemap绘制图形的线条

很抱歉,如果这个问题很简单,我就是使用Python和Basemap的新手.无论如何,我试图在地图上绘制20个飓风的路径(图).地图本身和传说完美呈现,但飓风的路径却没有.此外,我没有得到任何追溯消息,但我想我已经知道我的问题可能在哪里.有人可以告诉我哪里出错了.

这是csv文件的示例:

Year, Name, Type, Latitude, Longitude
1957,AUDREY,HU, 21.6, 93.3
1957,AUDREY,HU,22.0,  93.4
1957,AUDREY,HU,22.6,  93.5
1969,AUDREY,HU,28.2,99.6
1957,AUDREY,HU,26.5,93.8
1957,AUDREY,HU,27.9,93.8
1957,AUDREY,HU,29.3,95
1957,AUDREY,HU,27.9,93.8
1957,AUDREY,HU,29.3,93.8
1957,AUDREY,HU,30.7,93.5
1969,CAMILLE,HU, 21.6,99.3
1969,CAMILLE,HU,22.0,98.4
1969,CAMILLE,HU,22.6,90.5
1969,CAMILLE,HU,23.2,93.6
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的代码:

import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import csv, os, scipy
import pandas
from PIL import *


data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=1)
'''print data'''
fig = plt.figure(figsize=(12,12))

ax = fig.add_axes([0.1,0.1,0.8,0.8])

m = Basemap(llcrnrlon=-100.,llcrnrlat=0.,urcrnrlon=-20.,urcrnrlat=57.,
            projection='lcc',lat_1=20.,lat_2=40.,lon_0=-60.,
            resolution ='l',area_thresh=1000.)

m.bluemarble()
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.5)
m.drawstates(linewidth=0.5)

# Creates parallels and meridians
m.drawparallels(np.arange(10.,35.,5.),labels=[1,0,0,1])
m.drawmeridians(np.arange(-120.,-80.,5.),labels=[1,0,0,1])
m.drawmapboundary(fill_color='aqua')
color_dict = …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib pandas matplotlib-basemap

3
推荐指数
1
解决办法
2158
查看次数

使用 IPython Notebook 中的交互小部件渲染延迟

在 IPython Notebook 中使用 Interactive Widgets 时,特别是 FloatSliderWidget,有没有办法延迟最终结果的渲染?

我正在使用小部件和底图来显示地图数据,并且在每一步(滑动滑块时 - 控制图像叠加 alpha)的渲染尝试非常慢。

我可以设置一些延迟最终渲染的标志等吗?或者在我设置完所有滑块后添加一个按钮来显示图像?

非常感谢您的帮助。

干杯,J。

python widget ipython matplotlib-basemap ipython-notebook

3
推荐指数
2
解决办法
2717
查看次数

使用底图绘制纬度/长点

我正在尝试使用matplotlib和Basemap在地图上绘制点,其中点表示特定建筑物的纬度/经度.我的地图确实绘制了点,但将它们放在错误的位置.当我使用相同的数据并使用Bokeh做同样的事情,而不是matplotlib和底图,我得到正确的情节.

这是散景中的正确结果: 散景版

这是底图:底图版本中的INCORRECT结果

我已经在StackOverflow的其他地方看到过讨论,这可能与plot()以某种方式"移动"经度这一事实有关.我已经尝试了那里的建议,包括行:lons,lats = m.shiftdata(long,lat)然后使用移位的数据.这没有任何明显的影响.

我在Basemap和Bokeh中生成两个图的完整示例代码如下:

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import pandas as pd

from bokeh.plotting import figure, show
from bokeh.sampledata.us_states import data as states
from bokeh.models import ColumnDataSource, Range1d

# read in data to use for plotted points
buildingdf = pd.read_csv('buildingdata.csv')
lat = buildingdf['latitude'].values
long = buildingdf['longitude'].values

# determine range to print based on min, max lat and long of the data
margin = .2 # buffer to add …
Run Code Online (Sandbox Code Playgroud)

matplotlib matplotlib-basemap

3
推荐指数
1
解决办法
1万
查看次数

底图ImportError:没有名为'mpl_toolkits.basemap'的模块

from mpl_toolkits.basemap import Basemap  
Run Code Online (Sandbox Code Playgroud)

ImportError: No module named 'mpl_toolkits.basemap'  
Run Code Online (Sandbox Code Playgroud)

我用conda安装了底图

wayne@dors:~$ conda install basemap
Solving environment: done

# All requested packages already installed.  
Run Code Online (Sandbox Code Playgroud)

我正在运行ubuntu 15.04,Python3.4,matplotlib 2.1.1,numpy 1.8.2,该
如何解决?

python numpy matplotlib matplotlib-basemap

3
推荐指数
2
解决办法
8156
查看次数

在matplotlib中用颜色填充shapefile多边形

我正在寻找一种基于值填充shapefile多边形的方法。到目前为止,距底图教程(http://basemaptutorial.readthedocs.io/en/latest/shapefile.html)为止,我发现了如何用特定颜色填充多边形。

import matplotlib.pyplot as plt
import pypyodbc
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
from matplotlib.patches import PathPatch
import numpy as np

fig= plt.figure()
ax= fig.add_subplot(111)
m=Basemap(projection='cyl',llcrnrlat=34.5,llcrnrlon=19,urcrnrlat=42,urcrnrlon=28.5,resolution='h')
m.drawmapboundary(fill_color='aqua')
m.fillcontinents(color='#ddaa66',lake_color='aqua')
m.drawcoastlines()
m.readshapefile('nomoi','nomoi')

patches   = []

for info, shape in zip(m.nomoi_info, m.nomoi):
    if info['ID_2'] == 14426:
        patches.append( Polygon(np.array(shape), True) )

ax.add_collection(PatchCollection(patches, facecolor='m', edgecolor='k', linewidths=1., zorder=2))

plt.show()
Run Code Online (Sandbox Code Playgroud)

我想做的是从这样的字典中获取值:

dict1={14464: 1.16, 14465: 1.35, 14466: 1.28, 14467: 1.69, 14468: 1.81, 14418: 1.38}
Run Code Online (Sandbox Code Playgroud)

其中的键是shapefile中的info ['ID_2']列(如上面的代码所示),值是我要表示为颜色的变量。表示颜色图的范围从1.16到1.81不等,并且每个多边形(ID_2)的颜色都与dict1中的值相关。

提前致谢

python matplotlib shapefile matplotlib-basemap

3
推荐指数
1
解决办法
2019
查看次数

Conda安装底图错误

我正在尝试通过Anaconda提示安装matplotlib-basemap,但它只是不起作用.

当我输入:

conda install basemap
Run Code Online (Sandbox Code Playgroud)

它给出的错误是:

UnsatisfiableError: The following specifications were found to be in conflict:
  - basemap
  - xlsxwriter
Run Code Online (Sandbox Code Playgroud)

这是否意味着我需要unistall xlsxwriter(即使我需要它)?我怎么解除这个呢?

我也尝试通过https://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap下载它:

pip install basemap-1.1.0-cp27-cp27m-win_amd64.whl
Run Code Online (Sandbox Code Playgroud)

但那么错误是:

basemap-1.1.0-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.
Run Code Online (Sandbox Code Playgroud)

python matplotlib-basemap

3
推荐指数
1
解决办法
2872
查看次数

停止轮廓插值

我正在尝试使用轮廓f(matplotlib)在底图中绘制一些二维值。

然而,contourf 默认情况下会插入中间值并给出更平滑的数据图像。

有没有办法让轮廓停止在值之间插值?

我尝试添加关键字参数 interpolation='nearest' 但contourf 不使用它。其他选择是使用 imshow,但轮廓的一些功能不能与 imshow 一起使用。

我正在使用 python 3.6.3 和 matplotlib 2.1.2

python matplotlib matplotlib-basemap contourf

3
推荐指数
1
解决办法
1万
查看次数

matplotlib 底图绘制的纬度/经度坐标不正确

我正在尝试学习 matplotlib 和映射函数 Basemap,并尝试在地图上绘制一个简单的经纬度坐标列表。但是,将底图坐标转换为简单的 x/y 坐标会在地图上疯狂地绘制点,我不知道为什么。我的代码如下:

locationData = parseFile(locationFile)

fig = plt.figure(figsize=(8,8))
m = Basemap(projection='merc', resolution='h',
            llcrnrlat=49, llcrnrlon=-13.5,
            urcrnrlat=59.5, urcrnrlon=4)
m.drawcoastlines()
m.drawmapboundary(fill_color='aqua')
m.fillcontinents(color='green', lake_color='aqua')

index=0
for entry in locationData:
    lat = entry["latitudeE7"]/1E7
    long = entry["longitudeE7"]/1E7
    x,y = m(lat, long)
    print("Plotting {} {} to x{} y{}".format(lat,long,x,y))
    plt.plot(x,y, 'ok', markersize=20)
    # break at 30 points for testing
    if index>30: break
    index+=1
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是我从打印语句中得到的输出:

Plotting 52.------- 1.------- to x79364--.------- y-31476--.-------
Plotting 52.------- 1.------- to x79368--.------- y-31475--.-------
Plotting 52.------- 1.------- to x79362--.------- y-31471--.-------
Plotting …
Run Code Online (Sandbox Code Playgroud)

python matplotlib matplotlib-basemap

3
推荐指数
1
解决办法
1538
查看次数

用于地图绘制的pandas错误与basemap/proj

我在下面的Python代码中运行了Python代码,该代码是"绘制地图:可视化海地地震危机数据"的一本书,用于数据分析.第242-246页

该代码应该创建一个海地的情节地图,但我得到一个错误如下:

Traceback (most recent call last):
  File "Haiti.py", line 74, in <module>
    x, y = m(cat_data.LONGITUDE, cat_data.LATITUDE)
  File "/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.py", line 1148, in __call__
    xout,yout = self.projtran(x,y,inverse=inverse)
  File "/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/proj.py", line 286, in __call__
    outx,outy = self._proj4(x, y, inverse=inverse)
  File "/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/pyproj.py", line 388, in __call__
    _proj.Proj._fwd(self, inx, iny, radians=radians, errcheck=errcheck)
  File "_proj.pyx", line 122, in _proj.Proj._fwd (src/_proj.c:1571)
RuntimeError
Run Code Online (Sandbox Code Playgroud)

我检查了我的机器上是否安装了mpl_toolkits.basemapproj模块.Basemap是按照指示从源代码安装的,而proj是由Homebrew安装的,它们看起来很好.

如果您安装了底图和proj,此代码是否成功运行?如果没有,您认为这是模块安装问题,代码本身还是其他任何问题?

Haiti.csv文件可以从https://github.com/pydata/pydata-book/raw/master/ch08/Haiti.csv下载

import pandas as pd
import numpy as np
from …
Run Code Online (Sandbox Code Playgroud)

python data-analysis proj pandas matplotlib-basemap

2
推荐指数
1
解决办法
1584
查看次数

'AxesSubplot'对象没有属性'get_axis_bgcolor'

我试图从这里运行底图示例,我面临一个错误'AxesSubplot'对象没有属性'get_axis_bgcolor'.当我从网站上尝试第一个例子时,我应该接收黑色,水蓝色和陆地珊瑚的轮廓,但在我的情况下,边界是黑色但水和土地都是蓝色

我正在使用:-Python 3.5.5 -Matplotlib 2.2.2

非常感谢任何帮助.

python matplotlib matplotlib-basemap

2
推荐指数
1
解决办法
4322
查看次数