分享

气象绘图加强版(三十三)——天气符号

 江海博览 2022-03-14

本节提要:如何在python中使用天气符号。



天气符号是气象应用上很常见的一种符号,不过好像还没有人写过怎么在python进行可视化绘图上使用这些符号。这里我们简单介绍一下。
一、如何指定字体
在我们最开始学习使用matplotlib库包绘图的时候,新手很容易遇到text时候跳出大面积的黑框框。这是因为matplotlib默认只加载英文。一般来说我们建议添加如下语句以解决这个问题:
plt.rcParams['font.sans-serif']=['FangSong']
这里指定全局字体为仿宋。这个指定的前提是,你的电脑上必须安装该种字体。假设我电脑没有安装仿宋而只有黑体,则同样无法使用。
另外一种方法是通过FontProperties参量,导入某种字体。比如,我们导入本地电脑已经安装好的仿宋GB2312这种字体。一般在c盘下windows文件夹下有一个Fonts文件夹,打开后呈现如此界面:

图片

随后浏览到GB2312字体下,打开属性,复制路径。然后以font参数的形式传入text类命令中:

from matplotlib.font_manager import FontPropertiesfont=FontProperties(fname=r'C:\Users\Windows\Fonts\仿宋GB2312.ttf')ax.text(3,3,'仿宋GB2312',color='r',font=font)

图片

二、天气符号字体

这里我们使用气象家园上分享的字体符号WeatherSymbol.ttf,下载后安装到本地电脑。由于WeatherSymbol字体只存有天气符号,所以你输入a字母,将不会打印出a,而是a指定的天气符号。例如字母a与右方括号]

font=FontProperties(fname=r'C:\Users\Windows\Fonts\WeatherSymbol.ttf')ax.text(3,3,'a',color='r',font=font)ax.text(2,3,']',color='r',font=font)

图片

我们可以试试大写小写字母各代表的什么天气符号。

font=FontProperties(fname=r'C:\Users\Windows\Fonts\WeatherSymbol.ttf')letter_list=list('abcdefghijklmnopqrstuvwxyz')LETTER_list=list('abcdefghijklmnopqrstuvwxyz'.upper())all_list=letter_list+LETTER_listarray=np.array(all_list[:-2]).reshape(10,5)for i in range(array.shape[0]):    for j in range(array.shape[1]):        ax.text(i,j,array[i,j],font=font)

图片

三、如何全使用天气符号

经过分析,发现一些符号在键盘上是无法输出的,这时,我们可以借助windows的字符映射表功能。

在搜索栏中搜索并打开字符映射表,切换到WeatherSymbol字体下:

图片

点击要打印的天气符号,这里举例雷暴

图片

然后点击选择按钮,并点击复制按钮:

图片

回到程序中,将复制到的内容粘贴到text里,这时跳出无字体方框,不用管它,直接运行:

ax.text(3,3,'',color='r',font=font)

图片

四、在地图上的使用

与matplotlib里的使用方法类似,只需添加投影变换参数即可。

ax.text(108.5,29.85,'I',color='b',font=font,transform=ccrs.PlateCarree())ax.text(108.8,30.3,'E',color='b',font=font,transform=ccrs.PlateCarree())ax.text(108.95,30.2,'D',color='b',font=font,transform=ccrs.PlateCarree())

图片

若要使用天气符号,必须指定字体,否则会调回全局字体变量。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多