【发布时间】:2019-02-08 22:07:29
【问题描述】:
好的,所以我想要一个单一的情节,其中有“x”部小说,我们将能够看到特定单词在所有小说中的分布情况。每部小说都有不同的长度(总字数),因此“x”轴必须是小说,“y”轴必须是每部小说的长度。现在,我可以为每部小说创建一个单独的情节,但我想把它们都放在一起。这是我目前所拥有的:
input.dir<-("corpus2")
files.v<-dir(input.dir, "\\.txt$")
corpus<-corpus(files.v, input.dir)
tiempo<-tiempo(corpus)
noche<-palabra("día", corpus, tiempo)
dispersion(noche)
#corpus
corpus<-function(files.v, input.dir){
text.word.vector.l<-list()
for(i in 1:length(files.v)){
text.v <- scan(paste(input.dir, files.v[i], sep="/"), what="character", sep="\n")
Encoding(text.v)<-"UTF-8"
text.v <- paste(text.v, collapse=" ")
text.lower.v <- tolower(text.v)
text.words.v <- strsplit(text.lower.v, "\\W")
text.words.v <- unlist(text.words.v)
text.words.v <- text.words.v[which(text.words.v!="")]
text.word.vector.l[[files.v[i]]] <- text.words.v
}
return(text.word.vector.l)
}
#tiempo
tiempo <- function(argument1){
tiempo.l<-list()
for (i in 1:length(argument1)){
time<-seq(1:length(argument1[[i]]))
tiempo.l[[files.v[i]]]<-time
}
return(tiempo.l)
}
#palabra
palabra<-function(keyword, argument1, argument2){
hits.l<-list()
for (i in 1:length(argument1)) {
hits.v<-which(argument1[[i]]==keyword)
hits.keyword.v<-rep(NA, length(argument2[[i]]))
hits.keyword.v[hits.v]<-1
hits.l[[files.v[i]]]<-hits.keyword.v
}
return(hits.l)
}
#dispersion
dispersion<-function(argument1){
options(scipen=5)
for (i in 1:length(argument1)) {
plot(argument1[[i]], main="Dispersion plot",
xlab="time", ylab="keyword", type="h", ylim=c(0,1), yaxt='n')
}
}
我怎样才能把它组合在一起?这是一张我觉得它应该是什么样子的图片:
【问题讨论】:
-
“分散”是什么意思?您是否正在尝试使用条形图绘制每部小说中单词出现的频率?请阅读How to Create a Minimal, Complete, and Verifiable Example 并更新您的问题。
-
我要做的是绘制小说中特定单词出现的“位置”。用总字数设定小说多长的形象。我说清楚了吗?
-
感谢 Marcus。看起来 eipi10 提供了答案。
标签: r ggplot2 bar-chart scatter-plot