Rによる系統的クラスタリング(階層)分析のグラフ形式の完全版
### データを読み込む際のよくあるエラー。
データ読み込み時に以下のような問題が発生する可能性がありますので、前回のブログを参考にしてください。
エラーレポートが発生する場合がある。
1. エラー in if (is.na(n) || n > 65536L) stop("size cannot be NA nor exceed 65536") :
TRUE/FALSEが必要なところに値がない
データ変換距離の処理は行っていません。
2. hclust(dist(test)) でエラー : NA/NaN/Inf in foreign function call (arg 11).
おまけ 警告メッセージが表示されました。
dist(test) の場合:強制で導入されるNA
データが間違った方法で読み込まれました。詳細は各パラメータで、両方のデータ型があることを確認してください。
###プロットの描画を開始します。
> test<-read.table("C:/Users/admin/Desktop/test.txt")
> hc = hclust(dist(test))
plot(hc,hang=1,cex=0.5,labels = NULL)
> hcd = as.dendrogram(hc)
> plot(hcd)
# tweeking some parameters
op=par(bg="#DDE3CA")
plot(hc,col="#487AA1",col.main="#45ADA8",col.lab="#7C8071",
col.axis="#F38630",lwd=3,lty=3,sub="",hang=-1,axes=FALSE)
# add axis
axis(side=2,at=seq(0,400,100),col="#F38630",labels=FALSE,
lwd=2)
# add text in margin
mtext(seq(0,400,100),side=2,at=seq(0,400,100),line=1,
col="#A38630",las=2)
plot(hcd, type = "triangle")
<イグ
### 代替クラスタリンググラフ
hcludeで生成されたオブジェクトを代替クラスタリンググラフに変換する
op = par(mfrow = c(2, 1))
> plot(cut(hcd, h = 75)$upper, main = "Upper tree of cut at h=75")
> plot(cut(hcd, h = 75)$lower[[2]], main = "Second branch of lower tree with cut at h=75")
<イグ
if (is.leaf(n)) {
a <- attributes(n)
labCol <- labelColors[clusMember[which(names(clusMember) == a$label)]]
attr(n, "nodePar") <- c(a$nodePar, lab.col = labCol)
}
n
<イグ
plot(as.phylo(hc), cex = 0.5, label.offset = 5)
<イグ
ツリービューの拡大
また、非常に便利な機能として、ツリーの一部を選択することができます。例えば、樹形図上のある区画を研究したい場合、その区画の高さを75
plot(as.phylo(hc), type = "cladogram", cex = 0.9, label.offset = 1)
plot(as.phylo(hc), cex=1,type = "unrooted")
<イグ
よりカスタマイズされたグラフィックを得るためには、より多くのコードが必要です。非常に便利な関数 dendrapply は、dendrgoram のすべてのノードに関数を適用することができます。これは、タグに何らかの色を付けたい場合に非常に便利です。
<ブロッククオート
labelColors = c("#CDB380", "#036564", "#EB6841", "#EDC951 "))
clusMember = cutree(hc, 4)
colLab <- function(n) {
<未定義
-
# fan plot(as.phylo(hc), cex=1,label.offset = 2,type = "fan") plot(as.phylo(hc), type = "radial")
-
mypal=c("#556270", "#4ECDC4", "#1B676B", "#FF6B6B", "#C44D58") clus5=cutree(hc, 5) op=par(bg="#E8DDCB") plot(as.phylo(hc), type="fan", tip.color=mypal[clus5], label.offset=1, cex=log(mtcars$mpg, 10), col="red")
-
The Rpackagesparclprovides theColorDendrogramfunction that allows to add some color. For example, we can add color to theleaves The R package also provides theColorDendrogram function that allows us to give the clustering tree a color look. For example, we can add color to the leaf nodes # install.packages('sparcl') library(sparcl) # colors the leaves of a dendrogram y=cutree(hc, 3) ColorDendrogram(hc, y=y, labels=names(y), main="My Simulated Data", branchlength=80)
-
library(ggdendro) library(plyr) # basic option ggdendro(hc) #another option ggdendrogram(hc, rotate = TRUE, size = 4, theme_dendro = FALSE, color ="tomato") # Triangular lines ddata <- dendro_data(as.dendrogram(hc), type = "triangle") ggplot(segment(ddata)) + geom_segment(aes(x = x, y = y, xend = xend, yend = yend)) + ylim(-10, 150) + geom_text(data = label(ddata), aes(x = x, y = y, label = label), angle = 90, lineheight = 0) Lastbut not least, there's one more resource available from Romain Francois'saddicted to Rgraph gallery which I find really interesting. the code inR for generating colored dendrograms, which you can download and modify ifwanted so, is availablehere Finally, you can go to Romain François' graph library to learn more~~. You can even modify his code The address is. http://gallery.r-enthusiasts.com/RGraphGallery.PHP?graph=79 (looks like you have to go over the wall) http://addictedtor.free.fr/packages/A2R/lastVersion/R/code.R # load code of A2R function source("http://addictedtor.free.fr/packages/A2R/lastVersion/R/code.R") # colored dendrogram op=par(bg="#EFEFEF") A2Rplot(hc, k=3, boxes=FALSE, col.up="gray50", col.down=c("#FF6B6B", "#4ECDC4", "#556270"))
-
#another colored dendrogram op = par(bg = "gray15") cols = hsv(c(0.2, 0.57, 0.95), 1, 1, 0.8) A2Rplot(hc, k = 3, boxes = FALSE, col.up = "gray50", col.down = cols)
-
n
- }
clusDendro = dendrapply(hcd, colLab)
plot(clusDendro, main = "Cool Dendrogram")
R パッケージ ape による、hclust オブジェクトを phylo オブジェクトに変換する as.phylo 関数を使用した、より魅力的なツリーを提供するための非常に優れたツールです。
plot(as.phylo(hc), cex = 0.5, label.offset = 5)
<イグ
###4種類のクラスタリングツリーダイアグラム
plot.phylo 関数で使用できる 4 種類のクラスタリングツリープロットです。
plot(as.phylo(hc), type = "cladogram", cex = 0.9, label.offset = 1)
<イグ
plot(as.phylo(hc), cex=1,type = "unrooted")
<イグ
円形ツリー図
# fan
plot(as.phylo(hc), cex=1,label.offset = 2,type = "fan")
<イグ
plot(as.phylo(hc), type = "radial")
<イグ
カスタマイズされたシステムの進化ツリー
apeパッケージは、ツリーの特徴を様々な方法でカスタマイズすることができ、多くのコントロールが可能です。例えば
<ブロッククオート
plot(as.phylo(hc), type = "fan", tip.color = hsv(runif(15, 0.65, 0.95), 1, 1, 0.7), edge.color = hsv(runif(10, 0.65, 0.75) , 1, 1, 0.7), edge.width = runif(20,0.5, 3), use.edge.length = TRUE, col = "gray80")
いくつかのパラメータを変更する
mypal=c("#556270", "#4ECDC4", "#1B676B", "#FF6B6B", "#C44D58")
clus5=cutree(hc, 5)
op=par(bg="#E8DDCB")
plot(as.phylo(hc), type="fan", tip.color=mypal[clus5], label.offset=1, cex=log(mtcars$mpg, 10), col="red")
<イグ
### 色付きリーフノード
The Rpackagesparclprovides theColorDendrogramfunction that allows to add some color. For example, we can add color to theleaves
The R package also provides theColorDendrogram function that allows us to give the clustering tree a color look. For example, we can add color to the leaf nodes
# install.packages('sparcl')
library(sparcl)
# colors the leaves of a dendrogram
y=cutree(hc, 3)
ColorDendrogram(hc, y=y, labels=names(y), main="My Simulated Data",
branchlength=80)
<イグ
Rパッケージのggplot2に樹形図を描く機能がない理由は私には不明です。しかし、ggdendroというパッケージがちゃんとした解決策を提供している。
library(ggdendro)
library(plyr)
# basic option
ggdendro(hc)
<イグ
#another option
ggdendrogram(hc, rotate = TRUE, size = 4, theme_dendro = FALSE, color ="tomato")
<イグ
# Triangular lines
ddata <- dendro_data(as.dendrogram(hc), type = "triangle")
ggplot(segment(ddata)) + geom_segment(aes(x = x, y = y, xend = xend,
yend = yend)) + ylim(-10, 150) + geom_text(data = label(ddata), aes(x = x,
y = y, label = label), angle = 90, lineheight = 0)
<イグ
カラーデンドログラム
Lastbut not least, there's one more resource available from Romain Francois'saddicted to Rgraph gallery which I find really interesting. the code inR for generating colored dendrograms, which you can download and modify ifwanted so, is availablehere
Finally, you can go to Romain François' graph library to learn more~~.
You can even modify his code
The address is.
http://gallery.r-enthusiasts.com/RGraphGallery.PHP?graph=79 (looks like you have to go over the wall)
http://addictedtor.free.fr/packages/A2R/lastVersion/R/code.R
# load code of A2R function
source("http://addictedtor.free.fr/packages/A2R/lastVersion/R/code.R")
# colored dendrogram
op=par(bg="#EFEFEF")
A2Rplot(hc, k=3, boxes=FALSE, col.up="gray50", col.down=c("#FF6B6B",
"#4ECDC4", "#556270"))
<イグ
パー(op)
#another colored dendrogram
op = par(bg = "gray15")
cols = hsv(c(0.2, 0.57, 0.95), 1, 1, 0.8)
A2Rplot(hc, k = 3, boxes = FALSE, col.up = "gray50", col.down = cols)
<イグ
QRコードからご覧いただけます。
関連
-
R 描画エラー plot.new() : 図形の余白が大きすぎる
-
二項演算子への非数値引数を報告するR言語エラー
-
Rでファイルを読み込む際に、そのようなファイルまたはディレクトリが見つかりません。
-
8.2 カマグラ(No.31〜No.40)
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
Rでエラー:単項演算子への引数が無効
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
データボックス内の行/列の削除/追加を行うR言語
-
Rの警告 "条件の長さが1より大きいので、最初の要素しか使えない "に対する解決策
-
DEG解析で'row.names'に重複した名前を付けられない場合の解決法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン