爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13490|回复: 1

[源代码] 利用python绘制某市火电厂PM10散点图

[复制链接]

新浪微博达人勋

发表于 2019-8-15 15:43:59 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
利用python和csv数据绘制的某市火电厂PM10散点图,中文显示电厂的名字的问题暂时还没有解决图片如下:
hail_wind sta.jpeg

脚本代码见附件,供新手参考




PFsctter.py

1.47 KB, 阅读权限: 1, 下载次数: 22, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 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,有一个大佬写了一个地形白化的脚本,可以让图更好看一点。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表