py语言号称胶水,最重要的是他的库包,可是我们在notebook里面引用库包的时候会出现类似报错:
nuister这个包是我虚构的,(因为常用的库包我已经装上了,总不能为了演示卸载了
*囧*
)如果没有找到指定的库包就会显示这个错误。
anaconda平台下推荐conda安装所需要的库包。Python有一个pip命令也能安装,但是我和某些气象家园的同学上过当,pip显示安装好了,但是在编程的时候还是无法引用。所以不如一劳永逸的用conda安装。
(一)、conda界面在前面的开始界面下:
在Jupyter Notebook上面有一个Anaconda Prompt。打开后是命令行模式黑窗口,输入conda list可查看当前安装的库包:
输完后跳出默认安装的库包,你在安装anaconda时,基础包会一起安装好:
比较典型的基础库如numpy、pandas是预置好了的,你需要安装的主要是matplotlib、cartopy、netCDF4等非预置库包:
conda install matplotlib
之后会弹出y\n的选项,点y就行了,当然,这之后是漫长的等待,系统会缓慢的进行下载安装,运气差的时候会安装不上,不要灰心,明天再来一次。(或许给你电脑挪一下位置有奇效,此时或许可以唯心一下,请
三清下界
)
都好了之后可以在编程中引用一下检验是否安装好:
什么都没发生,那再好不过了,说明该安装的库包都安装上了,可以进入下一步了。
(二)、正式编程第一步——引用库包
气象数据可视化主要依靠matplotlib做绘图,其他库包为辅助,包括数据处理的,地理信息处理的等等。
在py中编程,第一步是引用库包-就是import语句
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport cartopy.crs as ccrs from cartopy.io.shapereader import Reader
可以看出,有两种常用的引用方式:
- 一种是import整个库包,as 后面表示将这个库包缩写为某某。例如第三行,每次引用matplotlib.pyplot都要全写一次显然是我这个懒人不能接受的,将他简化为plt,下次引用时不必全写了。是不是缩写随意呢?理论上你自己编写的程序只要你能读懂,可随意缩写, 但是从可读性的角度来说,为了将来请教别人debug时别把大神气走了,还是应该按照约定俗成的缩写方式进行。
- 还有一种from···import···语句,表示从这个库包里面只引用这一部分。
当然,每次绘图时需要的库包不尽相同,在需要的时候进行修改是最好的。比如上面的from cartopy.io.shapereader这一句,一般在自定义地图的时候需要读取你指定的地图文件才会引用,如果绘制全球海岸线,用默认设置即可,此条语句可删去。
(三)、正式编程第二步——引入画布
在引用完需要的库包工具之后,下一步该干嘛呢?没有白纸如何作画,所以下一步应该先设定自己的作图纸:
fig=plt.figure()
现在我们就已经创建了一张画布,figure里有两个常用语句,一个是figsize=(),一个是dpi.
figsize=(a,b)语句里面有两个参数,分别设置画布的长和宽,单位为英寸。
dpi为图像解析度,过低的话会使图像模糊不清。下面用一个小程序来展示其作用
######引入库包############import matplotlib.pyplot as pltimport numpy as np######虚拟数据########x=np.linspace(0.05,10,1000)y=np.cos(x)######画布############fig=plt.figure(figsize=(3,3),dpi=200)#####画图#############plt.plot(x,y,ls="-",lw="2")plt.show()
这张图相当于matplotlib里面的“Hello World”(dpi=200)
那么来改变一下dpi看看会发生什么(dpi=20):
这大概能生动展示dpi语句的作用了。
但是有个警告:过高dpi会使出图缓慢,特别是数据比较大时。建议将dpi调至合适位置。
(四)、常用的绘图命令
基础的常用绘图命令有折线图(plot)、柱状图(bar)、条形图(barh)、散点图(scatter)、直方图(hist)、饼图(pie)、箱线图(boxplot)等等。
但是我觉得直方图在绘制不超过12个数据时实在颜值过低,饼图在气象数据可视化方面很少见到。就不讲了。(其实是想鸽了)
下面先讲折线图:
plt.plot(x,y,lw=,ls=,c=,alpha=)
(x,y)表示其在坐标轴的位置,lw为线条宽度设定,ls为线条样式设定c为颜色,alpha为透明度设定。
lw=1 | |
lw=5 |
ls='-'(实线) | |
ls='--'(断线) | |
ls='-.'(点虚线) | |
ls=':' |
c='r'(红色) | |
c='k'(黑色) | |
c='y'(黄色) |
alpha=0.5 | |
alpha=0.1 |
基本上常用的就是这些了。要注意的是黑色black和蓝色blue开头都是b,所以设定k代表黑色。代码贴在下面:
#########引用库包############## ‘#’符号在py中代表注释,不会被编译import matplotlib.pyplot as pltimport numpy as np#########设定画布##############fig=plt.figure(figsize=(3,3),dpi=200)########虚构数据#############x=list(np.arange(1,21))y=np.random.randn(20)#######线图命令###############plt.plot(x,y,lw=4,ls='-',c='b',alpha=0.1)plt.plot()########show出图形###########plt.show()########保存图片###########fig.savefig("画布")
py绘图基本流程都是这样没有库包无法调用程序,没有画布无法作画,没有数据无法下笔,没有绘图命令只能输出一张白纸。