我使用 r 命令集合生成树状图。它工作得很好,并将生成的树状图保存到 PDF 文件中。为了提高效率,我将这些命令包装为一个函数,这不会改变任何东西。然而,pdf只是一个空白文件,没有任何图形内容。请让我知道我的函数定义有什么问题。谢谢。
\n\nmyplot<-function(inputcsv, outputfile){\n\nlibrary(ggdendro)\n\nlibrary(ggplot2)\n\nx<-read.csv(inputcsv,header=TRUE)\n\nd<-as.dist(x,diag=FALSE,upper=FALSE)\n\nhc<-hclust(d,"ave")\n\ndhc<-as.dendrogram(hc)\n\nddata<-dendro_data(dhc,type="rectangle")\n\nddata$labels$text <- gsub("\\\\."," ",ddata$labels$text)\n\nggplot(segment(ddata))+geom_segment(aes(x=x0,y=y0,xend=x1,yend=y1))\npdf(outputfile, width=30,height=35)\n\nlast_plot()\n\ndev.off()\n}\nRun Code Online (Sandbox Code Playgroud)\n
常见问题解答
将 ggplot 调用包装在 print() 函数中。
ggplot 和朋友返回一个对象,并且绘图仅在打印该对象时发生。当您在命令行上执行此操作时,打印会自动进行。当您将其粘贴到脚本或函数中时,您必须自己完成。
关于这是一个好主意还是一个愚蠢的事情的争论仍在继续......