如何在R语言中为欧洲国家创建基于PC1得分的时序热力图
实现步骤(基于Python)
1. 数据预处理
先把数据整理成适配热力图的结构:
- 每行对应一个欧洲国家
- 每列对应一个日期(时间节点)
- 单元格值为对应国家对应日期的PC1得分
如果你的数据是长格式(比如每行是「国家+日期+PC1得分」),用pandas转成宽格式:
import pandas as pd # 假设长格式数据框名为df,列名是'country', 'date', 'PC1_score' pivot_df = df.pivot(index='country', columns='date', values='PC1_score')
2. 绘制热力图
用seaborn搭配matplotlib实现,代码如下:
import seaborn as sns import matplotlib.pyplot as plt # 调整画布尺寸,适配时间轴的长度 plt.figure(figsize=(18, 10)) # 绘制热力图 sns.heatmap(pivot_df, cmap='coolwarm', # 配色方案,可替换为'viridis'/'RdBu_r'等 linewidths=0.5, # 单元格间的分隔线宽度 cbar=True) # 显示右侧颜色参考条 # 设置轴标签与标题 plt.xlabel('时间') plt.ylabel('欧洲国家') plt.title('欧洲各国COVID-19数据PC1得分热力图') # 旋转X轴日期标签,避免重叠 plt.xticks(rotation=45) # 自动调整布局,防止标签被截断 plt.tight_layout() plt.show()
额外优化建议
- 若日期过多导致X轴拥挤,可筛选关键时间节点(比如每周/每月取一个日期),或者调大
figsize参数 - 数据量较小时,可添加
annot=True参数,在单元格内显示PC1得分的具体数值 - 根据需求更换
cmap参数,选择更贴合主题的配色方案
内容的提问来源于stack exchange,提问作者Billy
相关产品推荐
相关产品推荐

