| 
 
	积分1542贡献 精华在线时间 小时注册时间2015-9-20最后登录1970-1-1 
 | 
 
 发表于 2019-8-20 15:05:08
|
显示全部楼层 
| 偷懒的方法,用pandas读取数据,可以直接读取中文存储中文数组。标记站点。 
 import matplotlib.pyplot as plt
 from mpl_toolkits.basemap import Basemap
 import numpy as np
 import pandas as pd
 plt.rcParams['font.sans-serif'] = 'SimHei'
 plt.rcParams['axes.unicode_minus'] = False
 
 font1 = FontProperties(fname=r"C:\Windows\Fonts\\simfang.ttf")
 
 f=open('D:\DataCeshi\paifang.csv','r')
 data = pd.read_csv(f, header=None,
 names=['lon','lat','pm10','站名'] )
 
 fig = plt.figure(figsize=(15,20))
 volume = [i*2 for i in pm10[:]]
 
 plt.scatter(lon,lat,s=volume,c=pm10,marker='o',cmap='cool',alpha=0.5)
 plt.title(r'市火电排放PM10空间分布图',fontsize=22,color='red')
 
 for i in range(0,len(lon)):
 plt.text(lon[i]+0.5,lat[i], 站名[i],ha='center', va='bottom',color='blue',fontproperties=font1, fontsize=14)
 
 map = Basemap(llcrnrlat=33,urcrnrlat=36,llcrnrlon=111,urcrnrlon=114)
 map.readshapefile("D:/Anaconda3/gadm36_CHN_shp/gadm36_CHN_3","states",drawbounds=True)
 
 cbar=plt.colorbar(orientation='horizontal',pad=0.01,shrink=0.48,
 ticks=[0,20,40,60,80,100,120,140,160],extend='max')
 
 cbar.set_label('PM10浓度',size=15)
 cbar.ax.tick_params(labelsize=15)
 
 plt.savefig('D:\dataceshi\\hail_wind sta.jpeg')
 plt.show()
 
 
 我没有你的数据,就大概改了一下,具体你试试,再修改修改
 另外推荐你在本版块搜一下maskout,有一个大佬写了一个地形白化的脚本,可以让图更好看一点。
 | 
 |