【发布时间】:2012-10-26 14:05:22
【问题描述】:
这是我关于 Stack Overflow 的第一个问题,如果我忽略了任何内容,我深表歉意。我正在绘制巡航位置图,并且在北纬 60 度处发生双平行,其中一条是直线(在立体投影上)。
有人知道我在做什么导致这个吗?
我的绘图脚本(引用外部数据):
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
import sys
import csv
dataFile = sys.argv[1]
dataStream = open(dataFile, 'rb')
dataReader = csv.reader(dataStream, delimiter=',')
numRows = sys.argv[2]
dataLat = []
dataLon = []
dataReader.next()
for row in dataReader:
dataLon.append(float(row[5]))
dataLat.append(float(row[6]))
m = Basemap(width=450000,height=150000,
resolution='f',projection='stere',\
lat_ts=65.4,lat_0=60.4,lon_0=1.91)
m.drawcoastlines(linewidth=0.2)
m.fillcontinents(color='white', lake_color='aqua')
x, y = m(dataLat,dataLon)
m.scatter(x,y,.5,marker='.',color='k')
m.drawparallels(np.arange(0.,81,1.), labels=[1,0,0,0], fontsize=10)
m.drawmeridians(np.arange(-180.,181.,5.), labels=[0,0,0,1], fontsize=10)
m.drawmapboundary(fill_color='aqua')
plt.title("Cruise Track")
plt.show()
示例:
另一个小问题:绘图的宽度/高度的单位是什么?它似乎不在文档中,我在任何教程等中都找不到它。
【问题讨论】:
-
m的定义似乎丢失了。如果你只调用m.drawparallels(...然后plt.show(),你会得到双重平行吗? -
刚刚添加了定义;看来我的复制粘贴工作做得很差。看来
m.drawparallels需要至少两个参数。 -
另外,感谢 Squido 先生将我的图添加到问题中!
标签: python matplotlib matplotlib-basemap