~ 废话太多了,今天的教程是环形dendrogram,颜值还是不错的。 大家来一起看看吧! 6igraph创建网络对象 net <- graph_from_data_frame(edges, vertices=vertices) net 7最终绘图 ggraph(net, layout = '<em>dendrogram</em>
mygraph <- graph_from_data_frame(myedges1, vertices=myvertices,directed = T) ggraph(mygraph, layout = '<em>dendrogram</em> 输入3: ggraph(mygraph, layout = 'dendrogram') + geom_edge_diagonal2(aes(colour =node.group)) +
局部整体(六)利用python绘制树状图 树状图( Dendrogram)简介 由一个根节点组成,根节点产生多个通过分支连接的子节点。常用于表示层次结构或显示聚类算法的结果。 快速绘制 基于dendrogram import pandas as pd from matplotlib import pyplot as plt from scipy.cluster.hierarchy import dendrogram, linkage import numpy as np # 导入数据 url = 'https://raw.githubusercontent.com/holtzy 通过dendrogram绘制多样化的树状图 更多用法可参考scipy.cluster.hierarchy.dendrogram[1] 修改参数 import pandas as pd from matplotlib /scipy.cluster.hierarchy.dendrogram.html [2] 树图 Tree: https://gallery.pyecharts.org/#/Tree/README
- mtcars[,1:7] plot(as.phylo(hclust(dist(new_mtcars))),type="fan") 2. circlize和dendextend 用circlize_dendrogram hc = hclust(dist(new_mtcars), method = 'complete') %>% as.dendrogram %>% set('labels_cex', c(0.8)) # dend %>% color_branches(k=4) %>% color_labels pdf('~/test.pdf', width=8, height = 8) circlize_dendrogram B1F100', '#FF7400', '#FFAA00', '#1240AB', '#009999') labels_colors(hc) = test_colors[mtcars$gear[order.dendrogram (hc)]] pdf('~/test2.pdf', width=8, height = 8) circlize_dendrogram(hc, labels_track_height = NA, dend_track_height
dend = reorder(as.dendrogram(hclust_1), wts=exprTable_t$Tet3) col_cluster <- as.hclust(dend) pheatmap 按某个基因的表达由大到小排序 dend = reorder(as.dendrogram(hclust_1), wts=exprTable_t$Tet3*(-1)) col_cluster <- as.hclust 按分支名字(样品名字)的字母顺序排序 library(dendextend) col_cluster <- hclust_1 %>% as.dendrogram %>% sort %>% as.hclust 梯子形排序:最小的分支在左侧 col_cluster <- hclust_1 %>% as.dendrogram %>% ladderize(FALSE) %>% as.hclust pheatmap( 按特征值排序 样本量多时的自动较忧排序 sv = svd(exprTable)$v[,1] dend = reorder(as.dendrogram(hclust_1), wts=sv) col_cluster
ax = sc.pl.heatmap( pbmc, marker_genes_dict, groupby="clusters", cmap="viridis", dendrogram=True ax = sc.pl.tracksplot(pbmc, marker_genes_dict, groupby="clusters", dendrogram=True) Visualization of options 大多数可视化都能通过 dendrogram 来排列类别。 linkage methods are available). sc.tl.dendrogram(pbmc, "bulk_labels") ax = sc.pl.dendrogram(pbmc, " bulk_labels") Plot correlation 与 dendrogram 一起,还可以绘制类别间的相关性(默认使用 ‘pearson’ 相关系数)。
import pandas as pd from matplotlib import pyplot as plt from scipy.cluster.hierarchy import dendrogram (z1) # 用最长距离法 plt.subplot(2, 2, 2) plt.title('最长距离法') z2 = linkage(data, 'complete') dendrogram(z2) # 用类平均法 plt.subplot(2, 2, 3) plt.title('类平均法') z3 = linkage(data, 'average') dendrogram(z3) # 用重心法 plt.subplot(2, 2, 4) plt.title('重心法') z4 = linkage(data, 'centroid') dendrogram(z4) plt.show() 使用sklearn from sklearn.cluster import AgglomerativeClustering def plot_dendrogram(model, **kwargs): # 可视化
此外,在图中添加 dendrogram 也很有帮助,它能把相似的细胞簇聚集在一起。层级聚类是利用各细胞簇之间 PCA components 的相关性自动计算的。 sc.pl.dotplot(pbmc, marker_genes_dict, "clusters", dendrogram=True) 使用这张图,我们可以看到 cluster 4 对应于 B-cells 与前文相同,添加了一条 dendrogram 用以将相似的 clusters 归为一组。 ax = sc.pl.stacked_violin( pbmc, marker_genes_dict, groupby="clusters", swap_axes=False, dendrogram sc.pl.matrixplot( pbmc, marker_genes_dict, "clusters", dendrogram=True, cmap="Blues
1,20, by = 1) hclust_mat$order <- index pheatmap(test, cluster_rows = hclust_mat) reorder 函数 reorder.dendrogram require(gridExtra) # reorder 1 index <- order(rowSums(test), decreasing = TRUE) dend = reorder(as.dendrogram show_colnames = FALSE) # reorder 2 index <- order(rowSums(test), decreasing = FALSE) dend = reorder(as.dendrogram
import pandas as pd from matplotlib import pyplot as plt from scipy.cluster.hierarchy import dendrogram (z1) # 用最长距离法 plt.subplot(2, 2, 2) plt.title('最长距离法') z2 = linkage(data, 'complete') dendrogram(z2) # 用类平均法 plt.subplot(2, 2, 3) plt.title('类平均法') z3 = linkage(data, 'average') dendrogram(z3) # 用重心法 plt.subplot(2, 2, 4) plt.title('重心法') z4 = linkage(data, 'centroid') dendrogram(z4) plt.show() 使用sklearn from sklearn.cluster import AgglomerativeClustering def plot_dendrogram(model, **kwargs): # 可视化
dend <- nutrient %>% dist() %>% # 计算距离 hclust() %>% # 聚类 as.dendrogram() # 转换一下 画图 其实你直接plot也是可以出图的 3) %>% # 水平绘制 plot(horiz=TRUE, axes=FALSE) # 添加一条竖线 abline(v = 350, lty = 2) # 添加矩形框 rect.dendrogram ) tanglegram图 # 准备2个聚类树对象,使用不同的方法 d1 <- nutrient %>% dist() %>% hclust( method="average" ) %>% as.dendrogram () d2 <- nutrient %>% dist() %>% hclust( method="complete" ) %>% as.dendrogram() # 自定义每个聚类树,放到一个列表中
image.png 去掉枝长,开口朝下 ggtree(tree1,aes(color=Species),branch.length = "none")+ layout_dendrogram()+ image.png 自定义颜色 ggtree(tree1,aes(color=Species),branch.length = "none")+ layout_dendrogram()+ theme rep("WW",439)) ggtree(tree1,aes(color=Species),branch.length = "none")+ layout_dendrogram
col_cluster=True,#列聚类 row_cluster=True,#行聚类 row_dendrogram =True, #是否展示行聚类树 col_dendrogram=True,#是否展示列聚类树 show_rownames =False, #是否展示行聚类树 col_dendrogram=False,#是否展示列聚类树 show_rownames =True, #是否展示行聚类树 col_dendrogram=True,#是否展示列聚类树 show_rownames =True, #是否展示行聚类树 col_dendrogram=True,#是否展示列聚类树 show_rownames
spatial_cluster.png") # 可选:显示聚类树状图 plt.figure(figsize=(10, 7)) plt.title("Hierarchical Clustering Dendrogram ") plt.xlabel("Cell Types") plt.ylabel("Distance") from scipy.cluster.hierarchy import dendrogram dendrogram(clustering.children_) plt.savefig(f"{output_dir}/dendrogram.png") plt.close()def
line = 1, col = "#A38630", las = 2) plot of chunk unnamed-chunk-8 par(op) 如果对默认的可视化效果不满意,可以先用as.dendrogram dhc <- as.dendrogram(h.clust) plot(dhc,type = "triangle") # 比如换个类型 plot of chunk unnamed-chunk-9 可以提取部分树进行查看 n } # 把自定义标签颜色应用到聚类树中 diyDendro = dendrapply(dhc, colLab) # 画图 plot(diyDendro, main = "DIY Dendrogram 语言可视化聚类树 R语言画好看的聚类树 又是聚类分析可视化 树状数据/层次数据可视化 参考资料 R帮助文档 https://r-graph-gallery.com/31-custom-colors-in-dendrogram.html
层次聚类与密度聚类代码实现 层次聚类 import numpy as np from scipy.cluster.hierarchy import linkage, dendrogram import np.random.rand(10, 2) # 使用linkage函数进行层次聚类 linked = linkage(data, 'single') # 画出树状图(树状图是层次聚类的可视化) dendrogram
这样得到的 inferCNV 的 dendrogram文件就不能使用之前的代码读取: infercnv.dend <- read.dendrogram(file = "inferCNV_output/ infercnv.observations_dendrogram.txt") 而是需要使用ape包的read.tree函数,如下所示: myTree <- ape::read.tree(file = "inferCNV_output/infercnv.observations_<em>dendrogram</em>.txt") u 我们可以看到读入的 inferCNV 的 dendrogram文件 其实是9个 内容 300 13 spike-Tcells 300 应该是13个细胞类型,其中两个 'ref-Tcells' 和 'ref-mono'是另外的文件,不会在infercnv.observations_dendrogram.txt 所以就是读入的 inferCNV 的 dendrogram文件的9个 内容。
- ''' import numpy as np from matplotlib import pyplot as plt from scipy.cluster.hierarchy import dendrogram from sklearn.datasets import load_iris from sklearn.cluster import AgglomerativeClustering def plot_dendrogram
col_dist, method = "complete") row_hc <- hclust(row_dist, method = "complete") #层次聚类 col_d <- as.dendrogram (col_hc) row_d <- as.dendrogram(row_hc) #生成系统树图 一、gapmap 1.绘制没有间隙的聚类图 gapmap(m = as.matrix(dataTable 0.1,0.8,0.1), h_ratio=c(0.1,0.8,0.1), label_size=2, show_legend=TRUE, col=RdBu) 2.绘制空白树状图(gapped dendrogram gap_dendrogram 是ggplot2绘制空白树状图的方法,输入数据类型为gapdata class,由gap_data()生成 row_data <- gap_data(d= dendsort quantitative", mapping="exponential", ratio=0.3, scale= 0.5) #生成数据 dend <- gap_dendrogram
visium-hd/hcc-16um/"sc.set_figure_params(dpi_save=300)sc.tl.rank_genes_groups(adata, groupby='leiden', dendrogram =False, use_raw=True)sc.tl.dendrogram(adata, use_raw=True, groupby='leiden')WARNING: You’re trying to =False, use_raw=True)sc.tl.dendrogram(adata, use_raw=True, groupby='domain')sc.pl.rank_genes_groups_matrixplot =False, use_raw=True)sc.tl.dendrogram(adata, groupby='domain')sc.settings.figdir = ". =False, use_raw=True)sc.tl.dendrogram(adata, groupby='leiden')sc.settings.figdir = ".