Python中怎么绘制气象图

2023-07-21

这篇文章将为大家详细讲解有关Python中怎么绘制气象图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

首先能看出的是折线图的背景色发生了变化,如何调节背景色:
 

ax1=fig.add_subplot(111,facecolor='papayawhip')
在引入子图时,在subplot命令中添加facecolor一句,引号中是调节颜色名,比如修改为green:
 

ax1=fig.add_subplot(111,facecolor='green')

(吐了)在画图时,一定要考虑到配色方案给人的视觉感受。

在共享x轴时,两边y轴的零刻度是不一致的,这要结合你分析的数据及时改变,其命令如下:

ax1.set_ylim(-1,5.5)ax2.set_ylim(5,30)

xlim和ylim是用来设置坐标轴的范围的。在分析的这三十天气温时,因为没有任何一天低于10摄氏度,那为什么不将右边刻度从10开始设置呢?不信可修改来具体分析:

咋一看似乎还行,但是在气温折线刚开始的时候有一部分是比较低的,绘制图像的人当然知道气温其实都在10摄氏度以上,不过当别人读取图像时,第一感觉会参照左边的刻度,这样会使阅读者产生前几天气温比较低(在零下)的感觉,所以制图时应该兼顾多方面,以给阅读者最良好的体验(包括前面提到的配色问题)。

和上个教程的体系相比,y轴上在主刻度的基础上出现了副刻度。在引入库包阶段输入:

import matplotlib.ticker as ticker

引入这个工具,在设定刻度阶段输入:

ax1.yaxis.set_minor_locator(ticker.MultipleLocator(0.1))

minor即是次要的意思。此处设定副刻度为0.1单位,还可以修改为0.001个单位。

左侧y轴副刻度0.1单位

左侧y轴副刻度0.01单位

看起来好像副刻度消失了,其实是因为过于密集导致生成了黑线。

同样的,主刻度也能修改,将minor换为major即可:

ax2.yaxis.set_major_locator(ticker.MultipleLocator(10))

现在将右侧主刻度设置为每10个单位显示:

在上面这幅图中,图例legend中的蒸发图例好像多出来一行,没有对齐(强迫症不爽),可通过参数ncol进行修改,ncol表示图例的列数:
 

plt.legend((bar1,bar2,line1,line2),('降水','蒸发','墒情','气温'),loc=2,frameon=False,framealpha=0.5,ncol=1)plt.legend((bar1,bar2,line1,line2),('降水','蒸发','墒情','气温'),loc=2,frameon=False,framealpha=0.5,ncol=4)

第一张图ncol=1,表示图例只有一列;第二张图ncol=4,表示图例有四列。

三、散点图基础
散点图也是经常使用的一类图表,其主体结构语句为:
plt.scatter(x,y,s,color='',cmap='',marker='',alpha='')
其中,(x,y)是其在坐标中的位置,s表示打点的大小,color表示打点的颜色,cmap表示颜色映射表,marker表示打点的标记,alpha修改透明度,整体上来说和折线图的用法类似。
 

以一个例子简要展示:
######引入库包############import matplotlib.pyplot as pltimport numpy as np#######拟造数据#############x=np.linspace(0.05,10,1000)y=np.random.rand(1000)#######画布与绘图区#####fig=plt.figure(figsize=(3,3),dpi=200)ax=fig.add_subplot(111)ax.scatter(x,y,s=10,)plt.show()

下面是修改某些参数:
 

当然,散点图除了绘制回归曲线,还能有更多的用途,比如在地图上标记地点:
 

nameandstation={"恩施":[109.5,30.2],"利川":[109,30.3],"巴东":[110.34,31.04],"建始":[109.72,30.6],"宣恩":[109.49,29.987],"来凤":[109.407,29.493],"咸丰":[109.14,29.665],"鹤峰":[110.034,29.89]}for key,value in nameandstation.items():    ax.scatter(value[0] , value[1] , marker='.' , s=60 , color = "k" , zorder = 3)    ax.text(value[0]-0.07 , value[1]+0.03 , key , fontsize = 7 , color = "k")
还可以绘制更加酷炫然而没多大用处的图:
 


关于Python中怎么绘制气象图就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。