Текстовый график в R: Есть ли способ сделать текстовую тепловую карту? - PullRequest
1 голос
/ 12 января 2012

У меня есть текстовый документ, и я хочу сделать из него тепловую карту, цветовое кодирование слов в соответствии с числовым значением, присвоенным каждому слову.

Есть мысли о том, как это сделать?

Фрейм данных будет настроен следующим образом:

phrase   value
The      1
black    9
dog      8
jumped   4
quickly  5
when     2
the      1
car      7
started, 8
but...   1

Ответы [ 2 ]

2 голосов
/ 13 января 2012
data<-structure(list(words = c("The", "black", "dog", "jumped", "quickly", 
"when", "the", "car", "started,", "but..."), cols = c(1, 9, 8, 
4, 5, 2, 1, 7, 8, 1)), .Names = c("words", "cols"), row.names = c(NA, 
-10L), class = "data.frame")

plot(0,0,type='n')
widths <- strwidth(data[,1])
spaces <- rep(strwidth(" "), length(widths)-1)
middle <- mean(par("usr")[1:2])
total <- sum(widths) + sum(spaces)
start <- c(0,cumsum(widths[-length(widths)] + spaces))
total <- sum(widths) + sum(spaces)
start <- start + middle - total/2
pos<-cbind(start,1)
colors<-rainbow(9)

text(pos,data[,1],col=colors[data[,2]],adj=0)

enter image description here

Я украл код у Дункана Мердока, связанный здесь: http://blog.revolutionanalytics.com/2009/01/multicolor-text-in-r.html

2 голосов
/ 12 января 2012

Вы имеете в виду что-то вроде этого:

 psych::read.clipboard(header=FALSE)
 head(data)

          X.value X.phrase
 The           1      The
 black         9    black
 dog           8      dog
 jumped        4   jumped
 quickly       5  quickly
 when          2     when

 ggplot(data=data) + geom_text(aes(x=factor(X.phrase), y=X.value, colour=X.value, label=X.phrase))

я знаю, что это не слишком красиво, но я думаю, что это отправная точка ... если бы у вас был второй ковариат для печати вдоль оси, это было былучше

enter image description here

...