作者:第八星系-向显均
邮箱:13660328708@163.com
导入第三方库和.txt文件
# 导入第三方库
import matplotlib.pyplot as plt
import numpy as np
# 导入文件
file_path = "示例文本文件.txt"
file = np.loadtxt(file_path, delimiter="\t", skiprows=1, unpack=1)
提取数据
# 提取数据
depth = file[0, :]
temperature = file[1, :]
salinity = file[2, :]
oxygen = file[3, :]
# print(depth, temperature, salinity, oxygen)
图像绘制
# 正常显示中文标签和负值
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.sans-serif'] = ['SimHei']
# 创建画布
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(10,6))
fig.patch.set_facecolor('white')
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)
'''
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)
'''
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