求助:如何用Excel数据制作插值热力图?替换随机种子后代码失效
用Excel数据制作插值热力图解决方案
步骤1:安装必要依赖
要读取Excel文件,需先安装pandas及对应格式依赖:
pip install pandas openpyxl
注:openpyxl适配.xlsx格式,若为.xls格式,替换为xlrd即可
步骤2:读取Excel数据
假设你的Excel文件名为data.xlsx,数据存于默认工作表,用以下代码读取并转为numpy数组:
import pandas as pd # header=None表示不把第一行识别为表头,直接读取原始数据 df = pd.read_excel('data.xlsx', header=None) # 转换为numpy数组,供绘图使用 grid = df.values # 可打印确认数据形状,应该输出(4, 2) print(grid.shape)
步骤3:修改绘图代码适配你的数据
原代码子图布局与插值方法数量不匹配,且未处理Excel数据读取逻辑,以下是适配后的完整代码:
import matplotlib.pyplot as plt import numpy as np import pandas as pd # 读取Excel数据 df = pd.read_excel('data.xlsx', header=None) grid = df.values # 定义要测试的插值方法 methods = [None, 'none', 'sinc'] # 创建1行3列的子图,对应3种插值方法 fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(12, 4), subplot_kw={'xticks': [], 'yticks': []}) # 循环绘制每种插值方法的热力图 for ax, interp_method in zip(axs.flat, methods): ax.imshow(grid, interpolation=interp_method, cmap='viridis') ax.set_title(f"插值方法: {str(interp_method)}") plt.tight_layout() plt.show()
常见问题排查
- 若提示找不到文件:确认Excel文件与代码在同一文件夹,或填写完整文件路径(如
'C:/Users/xxx/Documents/data.xlsx') - 若数据形状异常:检查Excel中是否有多余空行/空列,确保数据是严格的2列4行
- 若库安装失败:检查网络连接,或使用国内镜像源(如
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas openpyxl)
内容的提问来源于stack exchange,提问作者misssalinity
相关产品推荐
相关产品推荐

