如何用Python在坐标网格上叠加带色阶的磁数据点?
磁数据坐标点色阶可视化实现方案
需求说明
现有约50000个地表沿线坐标点数据(含纬度、经度),对应位置的磁数据存储在数据文件第4列。需基于已有numpy和matplotlib代码,叠加磁数据并通过色阶展示每个坐标点的磁数据值,实现带颜色标记的坐标点可视化。
原代码
import numpy as np import matplotlib.pyplot as plt path_to_file ="C:/Users/23928352/Desktop/Data/Value.txt" Data = np.loadtxt(path_to_file) print(Data.head()) print(Data.shape) print(Data.dtypes) NORTH=Data[:,2] EAST=Data[:,3] plt.figure() plt.plot(NORTH,EAST) plt.grid() plt.show() fig, ax=plt.subplots() X= 'NORTH' Y= 'EAST' ax.plot('X,Y')
修正并完善后的代码
import numpy as np import matplotlib.pyplot as plt path_to_file ="C:/Users/23928352/Desktop/Data/Value.txt" # 加载数据 Data = np.loadtxt(path_to_file) # 修正numpy数组的打印方式(numpy无head()和dtypes属性) print("数据前5行:\n", Data[:5]) print("数据形状:", Data.shape) print("数据类型:", Data.dtype) # 提取坐标和磁数据:根据需求调整列索引 # 注:若磁数据是文件第4列(从1开始计数),对应numpy索引为3,需同步调整EAST的索引 NORTH = Data[:, 2] # 纬度(文件第3列) EAST = Data[:, 3] # 经度(文件第4列) MAG_DATA = Data[:, 4]# 磁数据(文件第5列;若磁数据是第4列,改为Data[:,3]) # 创建画布和轴对象 fig, ax = plt.subplots(figsize=(10, 8)) # 用散点图展示坐标点,颜色绑定磁数据 scatter = ax.scatter(EAST, NORTH, c=MAG_DATA, cmap='viridis', s=5, alpha=0.7) # 添加可视化细节 ax.grid(True, linestyle='--', alpha=0.6) ax.set_xlabel('经度 (EAST)') ax.set_ylabel('纬度 (NORTH)') ax.set_title('地表沿线磁数据分布可视化') # 添加颜色条标注磁数据含义 plt.colorbar(scatter, ax=ax, label='磁数据值') # 显示图形 plt.show()
关键修改说明
- 修正numpy数组错误用法:将
Data.head()改为Data[:5],Data.dtypes改为Data.dtype,适配numpy数组属性。 - 提取磁数据:根据文件实际列位置调整索引,确保正确获取磁数据列。
- 替换绘图方式:用
scatter替代plot,通过c参数将磁数据与点颜色绑定,cmap指定色阶样式(可替换为jet、plasma等)。 - 优化可读性:调整点大小、透明度,添加网格、坐标轴标签和颜色条,提升图表信息传递效率。
内容的提问来源于stack exchange,提问作者Chandula
相关产品推荐
相关产品推荐

