[英]Saving dendrograms modified with dendextend in R
我想在樹狀圖中旋轉幾個組的順序,並設法用dendextend 做到這一點。 但是,當我嘗試使用 ggsave 保存 plot 時,我最終得到了未旋轉的原始樹狀圖。 有沒有辦法用 ggplot2 保存旋轉的樹狀圖? 我的代碼如下:
library(dendroextras)
library(ggplot2)
library(dendextend)
d_copy_n <- colour_clusters(hc_test, k=6, groupLabels = as.roman)
labels(d_copy_n)<-with(nl2[labels(d_copy_n)], Cell_type)
d_copy_n <- set(d_copy_n, "labels_cex", 1)
d_copy_n <- set(d_copy_n, "branches_lwd", 3)
par(mar=c(0,2,0,0))
d_copy_n %>%
rotate(121:86) %>%
plot()
par(mar=c(0,2,0,0))
ggsave("dendr_test.png", plot = plot(d_copy_n, cex.axis = 1, cex = 1), width = 21, height =7, units = "in", dpi = 300)
幾點:
dendroextras
package。 dendextend
package 包含您需要的所有功能(具有更一致的 API)。ggplot2
or ggsave
, since the plot you're creating is not a ggplot2 plot, but rather an R base Graphics plot. 因此,您可以使用類似 png("file_loc.png"); 的方式保存 plot; 繪圖函數(); dev.off()像這樣:
d_copy_n <- d_copy_n %>%
rotate(121:86)
現在這部分應該可以正常工作:
ggsave("dendr_test.png", plot = plot(d_copy_n, ...
這是一個簡單的示例,您所問的內容沒有經過 ggplot2 和 dendroextras
library(dendextend)
dend <- USArrests %>%
dist() %>%
hclust(method = "ave") %>%
as.dendrogram()
d_copy_n <- color_branches(dend, k=6)
d_copy_n <- set(d_copy_n, "labels_cex", 1)
d_copy_n <- set(d_copy_n, "branches_lwd", 3)
d_copy_n <- d_copy_n %>%
rotate(50:1)
# or just use:
# d_copy_n <- color_branches(dend, k=6) %>%
# set("labels_cex", 1) %>%
# set("branches_lwd", 3) %>%
# rotate(50:1)
png("dend_plot.png")
d_copy_n %>%
plot()
dev.off()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.