You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在Excel中使用Python绘制热图时如何设置X轴为周次名称

在Excel中使用Python绘制热图时如何设置X轴为周次名称

嗨,我太懂你这种烦恼了——在Excel里用Python画热图,结果X轴偏偏显示成干巴巴的数字,完全不是你想要的Week1、Week2这些周次名称对吧?别慌,这其实是因为绘图时默认用了列的索引值,咱们只要手动指定X轴标签就行,我给你一步步说怎么弄:

首先,咱们得先把Excel里的数据正确读进来,还要处理好表头和数据部分:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 读取当前工作簿里的活动数据
df = pd.DataFrame(Excel.CurrentWorkbook.Data[0])
# 把第一行设为列名
df.columns = df.iloc[0]
# 从第二行开始才是实际数据,截取这部分并重置索引
df = df[1:].reset_index(drop=True)

接下来,提取咱们需要的周次标签——也就是除了第一列「Names」之外的所有列名:

# 提取Week1、Week2这些周次名称作为X轴标签
x_axis_labels = df.columns[1:]

然后就可以绘制热图啦,关键是在heatmap函数里指定xticklabels参数为咱们刚提取的周次标签:

# 准备热图用的数值数据(转成float类型,避免绘图报错)
heatmap_values = df.iloc[:, 1:].astype(float)

# 设定画布大小,让显示更舒服
plt.figure(figsize=(10, 6))

# 绘制热图,同时指定X、Y轴的标签
sns.heatmap(
    heatmap_values,
    xticklabels=x_axis_labels,  # 这里就是设置X轴为周次名称的关键
    yticklabels=df.iloc[:, 0],  # Y轴用Names列的名称
    cmap='YlGnBu',  # 选个好看的配色,你也可以换成自己喜欢的
    annot=True  # 如果想在热图里显示具体数值,就加上这个参数
)

# 把X轴标签旋转45度,避免名称太长重叠在一起
plt.xticks(rotation=45, ha='right')

# 给热图加个标题
plt.title('每周数据热图')

# 显示图形
plt.show()

要是你的周次列名带了额外后缀(比如Week1 (X42)),只想保留「Week1」这种简洁名称的话,也可以用字符串处理来提取:

# 提取列名里的周次部分,去掉括号里的内容
x_axis_labels = [col.split(' (')[0] for col in df.columns[1:]]

最后再提醒你两点:

  • 确保Excel里的表头行(第一行)格式统一,没有多余的空格或者特殊字符,不然提取标签时容易出问题
  • 在Excel的Python环境里,运行代码后图形一般会直接在输出窗口显示,要是没看到,检查一下是不是代码里漏了plt.show()

内容来源于stack exchange

火山引擎 最新活动