本文为原创文章

本文链接:https://www.cnblogs.com/zhanling/p/12606990.html

 # -*- coding: utf-8 -*-

 '''
Author: HermionX source:https://github.com/HermioneX
''' import numpy as np
import xarray as xr
import os
import datetime
from mpl_toolkits.basemap import Basemap
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
import matplotlib.patches as mpatches
import matplotlib.colors as colors
plt.rcParams['font.sans-serif']=['simhei']
plt.rcParams['axes.unicode_minus'] = False
defaultencoding = 'utf-8' def plot1pic(src_fn,out_fn,start_str,cnt_str):
print(src_fn)
ds = xr.open_dataset(src_fn)
t = ds['value']*100
t.data[t.data<20] = 0
lons = ds.lon.data
lats = ds.lat.data
temp = xr.DataArray(t.data.T, coords=[lats,lons], dims=['latitude','longitude']) fig, ax = plt.subplots(figsize = (18,16)) m = Basemap(projection='cyl',resolution='l',llcrnrlon=lons.min(),llcrnrlat=lats.min(),
urcrnrlon=lons.max(),urcrnrlat=lats.max(),lon_0=120.,lat_0=90)
Lon,Lat = np.meshgrid(lons[:],lats[:])
X,Y = m(Lon,Lat)
shp_info3 = m.readshapefile("./CHN_adm_shp/CHN_adm1",'states',drawbounds=True,linewidth = 0.4,zorder=10) short_state_names = {u"湖北":"Hubei",
u"北京":"Beijing",
u"上海":"Shanghai",
u"天津":"Tianjin",
u"重庆":"Chongqing",
u"香港":"Xianggang",
} printed_names = [] for shapedict, state in zip(m.states_info, m.states):
if shapedict['NAME_1'] not in short_state_names.values(): continue
short_name = short_state_names.keys()[short_state_names.values().index(shapedict['NAME_1'])]
if short_name in printed_names: continue
x, y = np.median(np.array(state),axis=0)
print(x,y)
plt.text(x, y, short_name, ha="center")
printed_names += [short_name] cm = plt.cm.get_cmap('rainbow')
print(np.min(t.data),np.max(t.data))
cs=m.contourf(X,Y,t.data.T,cmap=cm) l = 0.95
b = 0.23
w = 0.02
h = 1 - 2*b plt.title( start_str +' ' +cnt_str,fontdict={'weight':'normal','size': 20},loc ='left')
rect = [l,b,w,h]
cbar_ax = fig.add_axes(rect)
cbar = plt.colorbar(cs,orientation='vertical',cax =cbar_ax)
cbar.ax.tick_params(labelsize = 16)
font = {'family' : 'simhei',
'color' : 'black',
'weight' : 'normal',
'size' : 16,
}
cbar.set_label(u'(%)' ,fontdict=font) #设置colorbar的标签字体及其大小
plt.savefig(out_fn,bbox_inches = 'tight')

Python-气象-大气科学-可视化绘图系列(三)—— 地图上自动标注省会名称(demo调整中)(代码+示例)的更多相关文章

  1. Python-气象-大气科学-可视化绘图系列(二)——利用basemap叠加地图,并添加白化效果(代码+示例)

    本文为原创链接: https:////www.cnblogs.com/zhanling/p/12193031.html 白化单图代码: import numpy as np import xarray ...

  2. Python-气象-大气科学-可视化绘图系列(一)——利用xarray读取netCDF文件并画图(代码+示例)

    本文原创链接:https:////www.cnblogs.com/zhanling/p/12192978.html 1 import numpy as np import xarray as xr i ...

  3. 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍

    原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------ ...

  4. Python爬取房产数据,在地图上展现!

    小伙伴,我又来了,这次我们写的是用python爬虫爬取乌鲁木齐的房产数据并展示在地图上,地图工具我用的是 BDP个人版-免费在线数据分析软件,数据可视化软件 ,这个可以导入csv或者excel数据. ...

  5. R语言绘图:在地图上绘制热力图

    使用ggplot2在地图上绘制热力图 ######*****绘制热力图代码*****####### interval <- seq(0, 150000, 25000)[-2] #设置价格区间 n ...

  6. R语言绘图:在地图上绘制散点图

    使用ggplot2在地图上绘制散点图 ######*****绘制散点图代码*****####### options(baidumap.key = '**************') #设置密钥 bei ...

  7. 实战SpringCloud响应式微服务系列教程(第十章)响应式RESTful服务完整代码示例

    本文为实战SpringCloud响应式微服务系列教程第十章,本章给出响应式RESTful服务完整代码示例.建议没有之前基础的童鞋,先看之前的章节,章节目录放在文末. 1.搭建响应式RESTful服务. ...

  8. ArcGIS 在地图上添加标注

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. leaflet-webpack 入门开发系列三地图分屏对比(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

随机推荐

  1. 泛微E-cology OA 远程代码执行漏洞

    分析文章:https://dwz.cn/bYtnsKwa http://127.0.0.1/weaver/bsh.servlet.BshServlet 若存在如上页面,则用下面数据包进行测试. POS ...

  2. DRF之restful规范、Postman接口测试

    一. DRF简介 Django REST框架是一个功能强大且灵活的工具包,用于构建Web API. 使用REST框架的一些原因: 该网站可浏览API是你的开发人员一个巨大的可用性胜利. 身份验证策略包 ...

  3. P5021 赛道修建 题解

    原题链接 简要题意: 在一棵树上求 \(m\) 条不相交的路径的最小值的最大值. 本题部分分很多,而且本人也交了 \(27\) 次,所以一定要仔细讲部分分! 算法一 对于 \(b_i = a_i + ...

  4. Redis 缓存更新一致性

    当执行写操作后,需要保证从缓存读取到的数据与数据库中持久化的数据是一致的,因此需要对缓存进行更新. 因为涉及到数据库和缓存两步操作,难以保证更新的原子性. 在设计更新策略时,我们需要考虑多个方面的问题 ...

  5. Transformers 快速入门 | 一

    作者|huggingface 编译|VK 来源|Github 理念 Transformers是一个为NLP的研究人员寻求使用/研究/扩展大型Transformers模型的库. 该库的设计有两个强烈的目 ...

  6. adb的基本安装和介绍(一)

    一,什么是adb? adb全称为Android Debug Bridge,就是起到调试桥的作用.顾名思义,adb就是android sdk 的一个工具 借助adb工具,我们可以管理设备或手机模拟器的状 ...

  7. 初学jQuery使用方法

    jQuery引用 <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></scri ...

  8. coding++:对List中每个对象元素按时间顺序排序

    需求: 需要对List中的每个User按照birthday顺序排序,时间由小到大排列. package com.tree.ztree_demo.orderby; import java.text.Si ...

  9. Java面试金典

    1,将构造函数声明为私有的作用 构造函数私有化,保证类以外的地方不能直接实例化该类,这种情况下,要创建这个类的实例,只能提供一个公共静态方法,像工厂方法模式,由于构造函数私有化,不能被继承. 2,在t ...

  10. python 基本知识

    1.windows下Spyder中快捷键 块注释/块反注释 Ctrl + 4/5 断点设置 F12 关闭所有 Ctrl + Shift + W 代码完成 Ctrl +空格键 条件断点 SHIFT + ...