0.写在前面

粗略确定了一个研究范围之后,还在分析站点数据...

本文包括在中国地图上画网格和绘制站点数量空间分布图(0.5°×0.5°格子)

1.txt文件读取并提取需要的列数据

df = pd.read_table(r"D:\20140101.txt",sep='\t',header=None)
#sep是分隔符,\t是空格,若为‘,’需要修改
#(print(df)可以查看读取的文件数据,dtype是数据格式)lat = df[64] #df[数]是引用列的格式,我需要的纬度在第66列
#print(lat),可以看一下有没有选错数据
del lat[0]   #我的lat的第一个数据是lat,其他的是数,所以需要把第一个删掉;之后lat的索引从1开始
lat=lat.astype(float)  #修改lat里的数据格式为float#lon与lat类似
lon = df[66]
#print(lon)
del lon[0]
lon=lon.astype(float)

2.把站点在地图上标出来,再画上网格

fig = plt.figure(1, figsize=[16, 9])
proj = ccrs.PlateCarree()
ax = plt.subplot(1, 1, 1, projection=proj)
extent = [70, 140, 30, 55]
ax.set(xlim=(70,140),ylim=(30,55))
#ax.set_extent([70, 136, 15, 60] , crs=ccrs.PlateCarree()),这句和上面那句等价,但是我因为用这句会报错就改成上一句了china = shpreader.Reader(r"D:\bou2_4l.dbf").geometries()
# 绘制中国国界省界九段线等等
ax.add_geometries(china, ccrs.PlateCarree(),facecolor='none', edgecolor='black', zorder=1)
ax.add_geometries(Reader(r"D:\1级河流.shp").geometries(), ccrs.PlateCarree(), facecolor='none', edgecolor='RoyalBlue', linewidth=0.4)
plt.title('20140101站点分布图', fontsize=20,pad=20) #pad是调整标题和图之间的距离的参数# 设置图例,shrink调整色标长度ax.set_xticks(np.arange(extent[0], extent[1]+1, 10), crs=proj)
ax.set_yticks(np.arange(extent[-2], extent[-1]+1, 5), crs=proj)
ax.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label=False))
ax.yaxis.set_major_formatter(LatitudeFormatter())miloc = plt.MultipleLocator(0.5) #0.5意思是以0.5°为间距画线
ax.xaxis.set_minor_locator(miloc)
ax.grid(axis='x', which='both') #both可替换为major或minor,画的线不同,可自行尝试miloc = plt.MultipleLocator(0.5)
ax.yaxis.set_minor_locator(miloc)
ax.grid(axis='y', which='both')
plt.scatter(lon, lat, c='k',s=2)
plt.savefig("D:\China2019.png", dpi=300,bbox_inches='tight')
plt.show()

作图结果:(标题没截出来)

3.(接着1)查每个格的站点数量并做图

numb=np.zeros([50,140],dtype=float,order='C')
# 创建一个全是0的二维数据,50是我区域纬度范围的2倍(因为0.5°一个格)#假定左下为0,0
for m in range(1,1740):if lat[m]<55 and lat[m]>=30 and lon[m]>=70 and lon[m]<140:a=lat[m]i=int(((a-30)//0.5))b=lon[m]j=int(((b-70)//0.5))numb[i][j]=numb[i][j]+1
#print(numb),可以查看现在的含数量信息的数组plt.matshow(numb,cmap='gist_heat_r') # 生成图像
ax=plt.gca()
ax.xaxis.set_ticks_position('bottom') #把x轴刻度规定在下方
ax.invert_yaxis() #因为它作图默认(0,0)在左上,要把纵坐标颠倒一下plt.title("2014站点数目分布图")#plt.xticks([])#plt.yticks([]) 需要不显示刻度的话可以加上这两句
plt.colorbar(shrink=0.8) #shrink控制colorbar长度plt.show()

作图结果:(我的是不显示刻度的结果,需要刻度的话可以把倒数三四行加上,不过我觉得这个刻度也不是经纬度,可能没什么用)

4.把两个图叠加在一起

如果有会的兄弟姐妹可以私聊我一下吗qwq

我只能用平板的画图软件把两个图叠一起www

python | 画中国站点数量空间分布图相关推荐

  1. Matlab和Python 画矩阵的非零元分布图

    文章目录 前言 Matlab画矩阵的非零元分布图 程序 结果 Python画矩阵的非零元分布图 程序 结果 总结 前言 一般我们在进行数值计算时,经常会遇到求解如下等式的问题: Ax=bAx=b Ax ...

  2. 如何用python画出中国地图-用Python画中国地图(二)

    在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...

  3. 用Python画中国地图(二)

    在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...

  4. echarts 山东地图_用Python画中国地图,实现各省份数据可视化

    第一步:安装pyecharts pyecharts是一款将python与echarts结合的强大的数据可视化工具,本文使用了0.1.9.4版本 pip install pyecharts==0.1.9 ...

  5. 用Python画中国地图,实现各省份数据可视化!可视化简直了!

    第一步:安装pyecharts pyecharts是一款将python与echarts结合的强大的数据可视化工具,本文使用了0.1.9.4版本 pip install pyecharts==0.1.9 ...

  6. python 画ks曲线_Ks密度曲线分布图绘图

    Ka(dN)代表每非同义位点的碱基替代数,而 Ks(dS)则代表每同义位点的碱基替代数, Ka/Ks的比值常用于判断某个蛋白编码基因是否受到选择压力的作用.一般认为,当 Ka/Ks>1时,则认为 ...

  7. Python 画中国地图 填色图 带南海九段线和指南针

    1. 库导入 import cartopy import numpy as np import pandas as pd import proplot as pplt import geopandas ...

  8. python画中国人口变化情况以及数据拟合

    数据来源中国人口统计年鉴 mport matplotlib.pyplot as plt import numpy as np import xlrd from scipy.optimize impor ...

  9. python | 绘制中国地形图(带中国边界省界)

    写在前面 <全篇参考气象水文科研猫公众号7.30日发的推送> Python使用Cartopy绘制全球地形图 效果图 1 不含中国边界和省界的全球地形图 直接参考公众号的推送就没问题 2 含 ...

  10. python 可视化 画直线_用Python画江苏省地图,实现各地级市数据可视化

    前言 万万没想到我昨天发布的用Python画中国地图,实现各省份数据可视化这篇文章获得了很多朋友的喜欢,目前已获得了66次转发,314次收藏,也让我涨了60个左右粉丝. 小嘚瑟 虽然这点成绩跟很多大V ...

最新文章

  1. 基于数据库数据增量同步_基于canal实现分布式数据同步
  2. krylov子空间迭代法
  3. python opencv cv2.VideoCapture(),read(),waitKey()的使用 ret,frame参数
  4. 脚本命令配置mysql_MySQL 自动化部署脚本
  5. java并发编程(十七)内存操作总结
  6. 全国大学校园网—拓扑图欣赏
  7. python_numpy_中的matrix与array的区别
  8. python怎么求中位数_Python求两个有序数组的中位数的几种方法
  9. Android开发项目计划书
  10. matlab划分训练集验证和测试集代码_数据集划分为训练集和测试集并生成标签--matlab代码...
  11. 傅里叶分析之掐死教程(完整版)
  12. 迅雷下载遇到“应版权方要求无法下载”,怎么办
  13. 解放生产力,CSS3帧动画工具
  14. 微信朋友如何找回 android,微信怎么恢复好友?简单几步轻松恢复!
  15. 精美黑色UI版创客新零售系统源码
  16. 搜狗 2018校招 商业基础工程—测试开发练习题
  17. 菜鸟系列之一:在ubuntu linux下搭建android开发
  18. Spss-kmeans聚类实操
  19. Linux 软中断机制分析
  20. 【Dart 教程系列第 28 篇】Dart中的 Map 和实体类的相互转换

热门文章

  1. pyqt4的一些相关资料整理
  2. cad中计算机的快捷键,CAD常用快捷键汇总
  3. Oracle快速入门(1)——ORACLE数据库简介
  4. Java 检测字符是否存在手机号或返回该手机号
  5. Notepad++汉化教程
  6. 前端开发基础-JavaScript
  7. IOS 10.3.3 Meridian越狱
  8. 深度神经网络主要模型,深度神经网络预测模型
  9. 拼多多流量不精准是什么原因?怎么提高点击?
  10. matlab匿名函数求导,MATLAB匿名函数和函数句柄