【问题标题】:Matplotlib Basemap drawcounties having issuesMatplotlib 底图绘制县有问题
【发布时间】:2018-01-21 11:43:38
【问题描述】:

我曾与其他用户一起查看过关于 Matplotlib 底图功能“绘制县”的先前问题,但它并没有解决我的问题。我仍然有底图:1.0.7-np113py35_0,带有最新的 python 版本(3.5.3-1)和 matplotlib 2.0.2 版本。这是我在美国境内的情节代码:

m = Basemap(projection='lcc',llcrnrlon=-88, llcrnrlat=28, urcrnrlon=-79,urcrnrlat=33,lat_0=31,lon_0=-83,width=5e6,height=3.5e6,resolution='i',area_thresh=1000)
m.drawcoastlines()
m.drawmapboundary()
m.drawcountries()
m.drawrivers(color='blue')
m.drawstates()

m.quiver(x,y,x1,y1,mag)


m.drawcounties()

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 2: invalid continuation byte

我已经研究了使“drawcounties”中的 zorder 更大(~20)的问题,但这并没有解决问题。问题是每个新版本的 python、matplotlib 和底图都无法使用,还是不同的问题?任何帮助将不胜感激。

【问题讨论】:

标签: python-3.x matplotlib matplotlib-basemap


【解决方案1】:

我遇到了同样的问题,并且能够通过对位于 ~/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap 目录中的 shapefile.py 进行小的更改来创建解决方法。

shapefile.py 第 58 行 我编辑了:

return v.decode('utf-8') 到 return v.decode('latin-1')。

这似乎对我有用。

祝你好运!

【讨论】:

  • 谢谢。对我来说,我将 return v.decode(encoding, encodingErrors) 更改为 return v.decode('latin-1') 并且它的作品,,
  • 我的文件看起来与您描述的不同:所以我打开 /miniconda3/lib/python3.7/site-packages/shapefile.py 并将所有 'utf-8' 实例替换为 'latin-1 ' 它现在工作正常。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2020-06-20
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
相关资源
最近更新 更多