Анализ кластерного графика. Как вы направляетесь вправо, а не вверх по линии? [Дубликат]

Сначала мы находим коэффициент этого числа

def fac(n):
  res = []
  for i in range(1,n+1):
    if n%i == 0:
res.append(i)

Сценарий для проверки простого или нет

def prime(n):
return(fac(n) == [1,n])

Сценарий для печати всего простого числа до n

def prime_list(n):
  pri_list = []
  for i in range(1,n+1):
    if prime(i)
      pri_list.append(i)
return(pri_list)
17
задан alittleboy 2 January 2013 в 09:26
поделиться

2 ответа

Чтобы отобразить определенные метки в горизонтальной дендрограмме, одним из решений является установка имен строк фрейма данных на новые метки (все метки должны быть уникальными).

require(graphics)
labs = paste("sta_",1:50,sep="") #new labels
USArrests2<-USArrests #new data frame (just to keep original unchanged)
rownames(USArrests2)<-labs #set new row names
hc <- hclust(dist(USArrests2), "ave")
par(mar=c(3,1,1,5)) 
plot(as.dendrogram(hc),horiz=T)

enter image description here [/g1]

EDIT - решение с использованием ggplot2

labs = paste("sta_",1:50,sep="") #new labels
rownames(USArrests)<-labs #set new row names
hc <- hclust(dist(USArrests), "ave")

library(ggplot2)
library(ggdendro)

#convert cluster object to use with ggplot
dendr <- dendro_data(hc, type="rectangle") 

#your own labels (now rownames) are supplied in geom_text() and label=label
ggplot() + 
  geom_segment(data=segment(dendr), aes(x=x, y=y, xend=xend, yend=yend)) + 
  geom_text(data=label(dendr), aes(x=x, y=y, label=label, hjust=0), size=3) +
  coord_flip() + scale_y_reverse(expand=c(0.2, 0)) + 
  theme(axis.line.y=element_blank(),
        axis.ticks.y=element_blank(),
        axis.text.y=element_blank(),
        axis.title.y=element_blank(),
        panel.background=element_rect(fill="white"),
        panel.grid=element_blank())

enter image description here [/g2]

25
ответ дан Didzis Elferts 27 August 2018 в 19:54
поделиться

Используя dendrapply, вы можете настроить свой дендро по своему усмотрению.

enter image description here [/g0]

colLab <- function(n) {
  if(is.leaf(n)) {
    a <- attributes(n)
    attr(n, "label") <- substr(a$label,1,2)             #  change the node label 
    attr(n, "nodePar") <- c(a$nodePar, lab.col = 'red') #   change the node color
  }
  n
}

require(graphics)
hc <- hclust(dist(USArrests), "ave")
clusDendro <- as.dendrogram(hc)
clusDendro <- dendrapply(clusDendro, colLab)
op <- par(mar = par("mar") + c(0,0,0,2))
plot(clusDendro,horiz=T)
25
ответ дан agstudy 27 August 2018 в 19:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: