1

RでlargeVisパッケージ経由でHDBSCAN algortihmを実行しようとしています。クラスターの視覚化。私はlargeVisのgplot関数を使用しています。プロット内のデータポイントのラベルを整数から文字列に変更することは可能ですか?私は、 "クラス"の列をほとんど変更せずに "クラス"列を行ヘッダーとして使用してアイリスデータセットを使用しています。ノード番号の代わりに現在の行ヘッダーをプロット内に表示することは可能ですか?HDBSCAN Rの可視化で数値の代わりにテキストラベルを適用する

x1 <- iris[,-5] 
row.names(x1) <- paste0("Iris-", iris[,5], " ", 1:nrow(x1)) 
View(x1) 

Iris_modified row headers

vis <- largeVis::largeVis(x1) 
clustering <- largeVis::hdbscan(vis) 
largeVis::gplot(clustering,t(vis$coords), text = TRUE) 

enter image description here

+0

あなたは[再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を証明した場合、それはあなたを助けるために簡単です。データの画像は役に立たない。 – MrFlick

+0

私はクラスターで構成されたデータを生成する例を提供する方法がわかりません。最初の行を列ヘッダー、最初の列を行ヘッダーとして10列と1000行のデータフレームを作成し、ランダムに数値を生成すると役立ちますか? –

+0

多くの場合、関数のヘルプページには、組み込みのデータセットを使用する例があります。通常は、問題を再現するためにそれらを適応させるのが最善です。 – MrFlick

答えて

0

関数自体はrownamesをプロットするための簡単なオプションを持っていない、それはggplotオブジェクトを返すんし、あなたがそれに追加の層を追加することができますビット。ここで0は、我々はrownameをルックアップするために、その索引を使用することができますあなたはrownames

library(ggplot2) 
pp <- largeVis::gplot(clustering,t(vis$coords), text = FALSE) + 
    geom_label(aes(label=rownames(x1)[label+1]), size=2.5, label.size=0.1, alpha=0.7) 

にプロットすることができ内部的には、(いくつかの非常に非R-のような理由で)で、各ノードの開始data.frameとインデックスを構築する方法を説明しますその観察のために、それをラベルとして使用してください。ここでは、基本機能のデフォルトオプションで使用されていたスタイリングのほとんどを使用しました。

enter image description here

+0

各クラスタの色を手動で変更することはできますか? –

+0

私の推測では、他のggplotオブジェクトと同じように 'scale_color_manual()'などの色を変更することができます。 – MrFlick

関連する問題