我将ggplot脚本包装成一个函数,如下所示.但是,运行这个给我错误消息,如
xy.coords(x,y,xlabel,ylabel,log)中的错误:
'x'是一个列表,但没有组件'x'和'y'
如果不将这些脚本包装到函数中,它们就可以正常工作.因此,如何编写这种函数,使用ggplot生成树形图并将其保存为pdf.
nicedendro<-function(inputdat, outputfile){
library(ggdendro)
library(ggplot2)
x <- read.table(inputdat, head=TRUE)
y <- 1-x
d <- as.dist(y,diag=FALSE,upper=FALSE)
hc <- hclust(d,"ave")
dhc <- as.dendrogram(hc)
ddata <- dendro_data(dhc,type="rectangle")
ddata$labels$text <- gsub("\\."," ",ddata$labels$text)
pdf(outputfile, width=30,height=35)
plot(ggplot(segment(ddata)) +
geom_segment(aes(x=x0,y=y0,xend=x1,yend=y1)) +
xlab(NULL) +
ylab(NULL) +
scale_x_discrete(limits=ddata$labels$text) +
opts(panel.grid.major = theme_blank()) +
opts(panel.grid.minor=theme_blank()) +
coord_flip())
dev.off()
}
Run Code Online (Sandbox Code Playgroud)
这是一个经常被问到的问题:您必须使用print()才能打印图表.
d <- function(){
g1 <- qplot(...)
print(g1)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
732 次 |
| 最近记录: |