आर में एक प्रशंसक (पोलर) डेंड्रोग्राम की साजिश कैसे करें?


9

मैं कुछ इस तरह की बात कर रहा हूँ:

वैकल्पिक शब्द

समाधान दिखाने के लिए डेटासेट सुझाया गया:

data(mtcars)
plot(hclust(dist(mtcars)))

1
ध्रुवीय प्रतिनिधित्व (अंतरिक्ष को बचाने से अलग) का क्या फायदा है? यह मुझे ऐसा लगता है जैसे यह देखने में मुश्किल है।
निको

1
@ निको अधिक शांत है (-;

1
यह तब भी उपयोगी है जब आपके पास एक स्टेम नहीं है ...
ताल गैली

3
@mbq: आप एक "अच्छा" वाक्य से चूक गए ... आप कह सकते हैं "यह अधिक प्रशंसक है " :)
निको

जवाबों:


10

Phylogenetics में, यह एक प्रशंसक phylogram है, इसलिए आप इसे phyloउपयोग और उपयोग करने के लिए परिवर्तित कर सकते हैं ape:

library(ape)
library(cluster) 
data(mtcars)
plot(as.phylo(hclust(dist(mtcars))),type="fan")

परिणाम:
वैकल्पिक शब्द


(+1) मैंने इसकी तलाश की, लेकिन इसे apeपैकेज में नहीं मिला !
chl

बिंगो। यही मैं ढूंढ रहा था। मुझे आश्चर्य है कि अगर ggplot2 में कुछ ऐसा ही है ...
Tal Galili

@ Ggplot2 में पेड़ संरचनाओं के लिए कोई आधिकारिक समर्थन नहीं। इस Google समूह धागे को देखें, j.mp/c85l5l (लेकिन यह निश्चित रूप से परिपत्र नहीं है)।
१०:५२

नमस्कार chl, लिंक के लिए धन्यवाद। मैं इस कोड के संदर्भ में भी जवाब दूंगा ...
Tal Galili

5

क्या आपने इस पोस्ट को देखा? http://groups.google.com/group/ggplot2/browse_thread/thread/8e1efd0e7793c1bb

उदाहरण लें, ord_polar () जोड़ें और कुल्हाड़ियों को उल्टा करें और आप बहुत करीब आ जाएं:

library(cluster) 
data(mtcars)
x <- as.phylo(hclust(dist(mtcars)))

p <- ggplot(data=x)
p <- p + geom_segment(aes(y=x,x=y,yend=xend,xend=yend), colour="blue",alpha=1) 
p <- p + geom_text(data=label.phylo(x), aes(x=y, y=x, label=label),family=3, size=3) + xlim(0, xlim) + coord_polar()

theme <- theme_update(  axis.text.x = theme_blank(),
                        axis.ticks = theme_blank(),
                        axis.title.x = theme_blank(),
                        axis.title.y = theme_blank(),
                        legend.position = "none"
                     )
p <- p + theme_set(theme)
print(p)

1
p <- ggplot(data=x)मैं इस त्रुटि मिलती है: ggplot2 doesn't know how to deal with data of class phylo। मैं क्या खो रहा हूँ?
गाबोरगुला

1

चार साल बाद, मैं अब इस सवाल का जवाब देने में सक्षम हूं। यह दो नए पैकेजों को मिलाकर किया जा सकता है: परिचालित और dendextend

circlize_dendrogramफ़ंक्शन का उपयोग करके प्लॉट बनाया जा सकता है (प्लॉट.फाइलो फ़ंक्शन के "प्रशंसक" लेआउट पर बहुत अधिक परिष्कृत नियंत्रण की अनुमति देता है)।

# install.packages("dendextend")
# install.packages("circlize")
library(dendextend)
library(circlize)

# create a dendrogram
hc <- hclust(dist(datasets::mtcars))
dend <- as.dendrogram(hc)

# modify the dendrogram to have some colors in the branches and labels
dend <- dend %>% 
   color_branches(k=4) %>% 
   color_labels

# plot the radial plot
par(mar = rep(0,4))
# circlize_dendrogram(dend, dend_track_height = 0.8) 
circlize_dendrogram(dend, labels_track_height = NA, dend_track_height = .4) 

और परिणाम है:

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.