- 积分
- 1552
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 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,有一个大佬写了一个地形白化的脚本,可以让图更好看一点。 |
|