2012-01-12 6 views
1

私はテキスト文書を持っており、ヒートマップを作成して、各単語に割り当てられた数値に従って単語を色分けしたいと考えています。テキストプロットのR:テキストヒートマップを作成する方法はありますか?

これを行う方法についてのご意見はありますか?

データフレームは以下のように設定されます:

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

ヒートマップは、関係を視覚化します。ここには単変量データしかないようです。あなたはヒートマップの2つの軸であると想像しましたか? –

+0

ああ、私は明確にする必要があります。私が最終的な出力として望むのは、すべてのテキストをドキュメントとしてまとめたものです。それは、異なる単語/句が値に基づいて色分けされた段落形式になります。私はそれが本当に "地図"ではないが、より良い言葉を考えることができないことを知る。 – overanalyst79

答えて

2

あなたはこのような何か意味ですか:

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

+0

迅速な対応をありがとう。私が言及することを忘れた部分は、私は段落形式に戻す必要があるということでした。ワードクラウドパッケージは色と同様のことをしますが、単語クラウドは必要ありません。段落としてまとめる必要があります。 – overanalyst79

+0

あなたは基本的に同じテキストが欲しいという意味ですが、色付きの単語を使用しますか? – Seb

2
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

+0

はい、これと以下のSebの提案の間に、解決策があると思います。ありがとう! – overanalyst79