| 
 
	积分748贡献 精华在线时间 小时注册时间2012-12-13最后登录1970-1-1 
 | 
 
| 
想让画出来的图像下面这张图一样有经纬度线哎,但是怎么改都画不出来,需要加什么命令哎,或者能显示多个省的边界也行哎,我加载的是单个福建省的区域边界图,是不是加载的shp文件不对哎
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 脚本是以下的脚本###用于画站点图
 
 import matplotlib.pyplot as plt
 from mpl_toolkits.basemap import Basemap
 import matplotlib
 import pandas as pd
 import csv
 import numpy as np
 
 
 #解决中文显示问题
 plt.rcParams['font.sans-serif']=['SimHei'] #y用司马黑字体显示
 plt.rcParams['axes.unicode_minus'] = False   #正常显示负号的设置
 
 #读入数据
 filepath = "station-fj.csv"
 with open(filepath) as f:
 reader = csv.reader(f)
 header_row = next(reader)
 #print(header_row)
 lon = []
 lat = []
 sta_times = []
 for line in reader:
 lon.append(float(line[0]))
 lat.append(float(line[1]))
 sta_times.append(float(line[2]))
 #print('sta_times = ',sta_times)
 
 #fig=plt.subplots()
 volume = [i*20 for i in sta_times[:]]#将点放大,显示出来好看
 
 # 设置基本图片画板
 #fig,ax1=plt.subplots()  #分离画布对象fig和绘图区对象ax
 fig = plt.figure(figsize=(10, 8))
 
 
 #设置地图显示经纬度范围
 mapproj = Basemap(projection='cyl',llcrnrlat=21.0,urcrnrlat=30.0,llcrnrlon=113,urcrnrlon=122)
 # 设置投影方式,以及经纬度范围
 mapproj.drawcoastlines(linewidth=0.72,color='gray')
 mapproj.drawparallels(np.arange(21,30,2),
 labels = [1,0,0,0],
 linewidth = 0.0,)
 mapproj.drawmeridians(np.arange(113,122,2),
 labels = [0,0,0,1],
 linewidth = 0.0,)
 
 mapproj.readshapefile("./map/区域边界面",'states',drawbounds=True)
 plt.scatter(lon,lat,s=volume,c=sta_times,marker='o',cmap='cool',alpha=0.8)
 plt.title('站点空间分布')
 
 #存图
 plt.savefig('./figure/station-3.0.png')
 plt.show()
 
 绘制出来的图
 
 
 | 
 
  
  |