Python读取 .txt 文件绘制温度-盐度-溶解氧垂直剖面图

文摘   2024-07-21 12:51   四川  

作者:第八星系-向显均

              邮箱:13660328708@163.com



Python


01

导入第三方库和.txt文件

# 导入第三方库import matplotlib.pyplot as pltimport numpy as np
# 导入文件file_path = "示例文本文件.txt"file = np.loadtxt(file_path, delimiter="\t", skiprows=1, unpack=1)# print(file)


02

提取数据

# 提取数据depth = file[0, :]temperature = file[1, :]salinity = file[2, :]oxygen = file[3, :]# print(depth, temperature, salinity, oxygen)



03

图像绘制

# 正常显示中文标签和负值plt.rcParams['axes.unicode_minus'] = Falseplt.rcParams['font.sans-serif'] = ['SimHei']# 创建画布fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(10,6))fig.patch.set_facecolor('white')


图1  温度垂直剖面

ax1.plot(temperature, -depth,          'o-r',          label = 'Temperature')
# 添加子图标题ax1.set_title('Temperature(℃)',              color = 'red',              fontsize = 12.5,              fontname = 'Times New Roman')
# 调整x坐标轴位置ax1.xaxis.tick_top()
# 调整y坐标轴ax1.set_ylabel("Depth(m)",               color = 'red',               fontsize = 12.5,               fontname = 'Times New Roman')
# 调整外观ax1.tick_params(top=True, left=True,         # 展示顶部和左边的坐标轴                bottom=False, right=False,   # 隐藏底部和右边的坐标轴                labeltop=True, labelleft=True,         # 展示顶部和左边的坐标轴刻度                labelright=False, labelbottom=False,   # 隐藏底部和右边的坐标轴刻度                color = 'red',         # 坐标轴刻度的颜色                labelcolor = 'red',    # 坐标轴颜色                labelsize = 12)        # 坐标轴刻度的大小
# 美化图例font1={'family':'Times New Roman', 'weight':'normal', 'size':10}ax1.legend(prop = font1,           loc = 'upper left',           frameon = False,           labelcolor = 'linecolor')           # 更改图脊属性ax1.spines['top'].set_color('red')ax1.spines['left'].set_color('red')ax1.spines['right'].set_visible(False)ax1.spines['bottom'].set_visible(False)
# 自行选择是否添加网格线'''ax1.grid('true')ax1.grid(color = 'lightgray',         alpha = 0.8,         linestyle = ':',         linewidth = 0.4)'''


图2   温度垂直剖面

ax2.plot(salinity, -depth,          'o-g',          label='Salinity')         # 添加子图标题ax2.set_title('Salinity(PSU)',              color='green',              fontsize=12.5,              fontname='Times New Roman')
# 调整x坐标轴位置ax2.xaxis.tick_top()
# 调整外观ax2.tick_params(top=True, left=True,         # 展示顶部和左边的坐标轴                bottom=False, right=False,   # 隐藏底部和右边的坐标轴                labeltop=True, labelleft=True,         # 展示顶部和左边的坐标轴刻度                labelright=False, labelbottom=False,   # 隐藏底部和右边的坐标轴刻度                color = 'green',         # 坐标轴刻度的颜色                labelcolor = 'green',    # 坐标轴颜色                labelsize = 12)        # 坐标轴刻度的大小
# 美化图例font1={'family':'Times New Roman', 'weight':'normal', 'size':10}ax2.legend(prop=font1,           loc='upper left',           frameon = False,           labelcolor='linecolor')
# 更改图脊属性ax2.spines['top'].set_color('green')ax2.spines['left'].set_color('green')ax2.spines['right'].set_visible(False)ax2.spines['bottom'].set_visible(False)
# 自行选择是否添加网格线'''ax2.grid('true')ax2.grid(color = 'lightgray',         alpha = 0.8,         linestyle = ':',         linewidth = 0.4)'''


图3  溶解氧垂直剖面

ax3.plot(oxygen, -depth,          'o-b',          label = 'Dissoved-Oxygen')
# 添加子图标题ax3.set_title('Dissoved-Oxygen(μmol/kg)',              color = 'blue',              fontsize = 12.5,              fontname = 'Times New Roman')
# 设置x坐标轴位置ax3.xaxis.tick_top()
# 调整外观ax3.tick_params(top=True, left=True,         # 展示顶部和左边的坐标轴                bottom=False, right=False,   # 隐藏底部和右边的坐标轴                labeltop=True, labelleft=True,         # 展示顶部和左边的坐标轴刻度                labelright=False, labelbottom=False,   # 隐藏底部和右边的坐标轴刻度                color = 'blue',         # 坐标轴刻度的颜色                labelcolor = 'blue',    # 坐标轴颜色                labelsize = 12)        # 坐标轴刻度的大小
# 美化图例font1={'family':'Times New Roman', 'weight':'normal', 'size':10}ax3.legend(prop = font1,           loc = 'upper left',           frameon = False,           labelcolor = 'linecolor')
# 更改图脊属性ax3.spines['top'].set_color('blue')ax3.spines['left'].set_color('blue')ax3.spines['right'].set_visible(False)ax3.spines['bottom'].set_visible(False)
# 自行选择是否添加网格线'''ax3.grid('true')ax3.grid(color = 'lightgray',         alpha = 0.8,         linestyle = ':',         linewidth = 0.4)'''


 图像保存和展示 


plt.savefig('T-S-DO.png', dpi=600)plt.show()


END



第八星系人造大气理论爱好者
记录与交流python、matlab等科研工具。记录与交流大气科学的学科知识
 最新文章