You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel/Python绘制格式特殊的数据集图表?

分类位置数据的图表绘制方案

你的数据集可以绘制成图表,Excel和Python都能实现,具体方法如下:

Excel实现步骤

Excel完全可以处理这类数据,核心是先把数据转换成适合绘图的长格式,再生成折线图:

  1. 数据重塑:
    • 选中原始表格,点击「数据」选项卡→「从表格/区域」,进入Power Query编辑器。
    • 选中Position列,点击「转换」→「逆透视其他列」,此时会生成三列:Position、属性、值。
    • 重命名列:把「属性」改为「年份」,「值」改为「分类」,调整列顺序为「分类」、「年份」、「位置」,关闭并加载到Excel。
  2. 生成折线图:
    • 选中重塑后的三列数据,插入「带数据标记的折线图」,每个分类会自动生成一条折线,展示它在各年份的位置变化。
    • 若想展示各年份不同位置的分类分布,也可以选择条形图,将年份设为X轴、位置设为Y轴,在数据点上标注分类。

Python实现方法

用pandas处理数据格式,配合matplotlib或seaborn绘图,代码示例如下:

1. 环境准备

先导入所需库:

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

2. 构建并转换数据

# 构建原始数据框
data = {
    'Position': [1, 2, 3],
    '2012': ['A', 'C', 'B'],
    '2013': ['B', 'A', 'D'],
    '2014': ['A', 'C', 'E']
}
df = pd.DataFrame(data)

# 转换为长格式(适合折线图)
df_long = df.melt(id_vars='Position', var_name='Year', value_name='Category')
df_long = df_long[['Category', 'Year', 'Position']]
df_long['Year'] = df_long['Year'].astype(int)

3. 绘制分类位置变化折线图

plt.figure(figsize=(8, 5))

# 为每个分类绘制折线
for category in df_long['Category'].unique():
    cat_data = df_long[df_long['Category'] == category]
    plt.plot(cat_data['Year'], cat_data['Position'], marker='o', label=category)

# 设置图表元素
plt.xlabel('年份')
plt.ylabel('位置')
plt.title('各分类随年份的位置变化')
plt.legend(title='分类')
plt.yticks([1, 2, 3])  # 固定Y轴为整数位置

plt.show()

4. 绘制年份-位置分类热力图(可选)

如果想直观展示每个位置在各年份的分类,可绘制热力图:

plt.figure(figsize=(6, 4))
heatmap_data = df.set_index('Position')

# 绘制热力图并标注分类
sns.heatmap(heatmap_data.applymap(lambda x: ord(x)-ord('A')),
            annot=heatmap_data, fmt='', cmap='viridis',
            xticklabels=heatmap_data.columns, yticklabels=heatmap_data.index)

plt.xlabel('年份')
plt.ylabel('位置')
plt.title('各年份-位置的分类分布')
plt.show()

内容的提问来源于stack exchange,提问作者ErroneousErrors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 03:07:12