R语言层次聚类保存输出结果为PDF时出现问题

如图,当我不保存输出结果为PDF时,输出的图像正常:

img


但是保存PDF时,程序运行报错:

img


并且输出的PDF中,层次聚类的对象名全都消失了:

img


这个问题该怎么解决呢?

在R中执行层次聚类的常用步骤如下:

  1. 导入相关包:
    library(cluster)   # 用于聚类分析
    library(ggplot2)   # 用于作图
    library(gplots)    # 用于热图绘制
    
  2. 读取数据并检验:
    data <- read.csv("yourdata.csv")
    str(data)          # 查看数据结构
    
  3. 选择距离度量和聚类方法:
    distance <- dist(data, method = "euclidean")   # 欧式距离
    hc <- hclust(distance, method = "ward.D2")     # Ward法聚类
    
  4. 绘制层次聚类树:
    plot(hc)                                     # 绘制树形图
    
  5. 根据树形图结果选择合适的聚类数k,然后进行k-means聚类:
    k <- 3                                       # 选择3个聚类中心
    kmeans <- kmeans(data, k)
    
  6. 结果可视化:
    # 热图
    heatmap(data, kmeans$cluster, col = rainbow(k),
           margins = c(10, 10), main = "Heatmap of Clustering") 
    # Scatter plot
    ggplot(data, aes(x, y, color = factor(kmeans$cluster))) +
         geom_point()
    
  7. 保存结果:
    # 保存PDF
    pdf("hc_kmeans_result.pdf") 
    plot(hc)   
    heatmap(data, kmeans$cluster, col = rainbow(k), margins = c(10, 10)) 
    ggplot(data, aes(x, y, color = factor(kmeans$cluster))) + geom_point() 
    dev.off()
    
    在最后一步保存结果为PDF时,如果出现错误,请检查:
  8. 是否正确安装了所有相关包
  9. 环境变量path中是否包含 LaTex 相关命令
  10. LaTex中是否已经配置好了PDF文件输出
  11. 排除LaTex环境问题后,可尝试使用其他格式(PNG、JPG等)保存输出结果