R ggplot facet\换行打印,其中每个打印的线名称都会更改
你好(来自一个新手) 我正在用词识别的神经网络模型进行模拟。该模型基本上对词典中的每个单词都有多个时间对齐的检测器(例如,“dog”实际上有67个检测器,在连续的时间点对齐)。因此,模拟的输出是一个文件,在模拟的每个时间步激活每个单词检测器。因此,如果模拟运行100个周期,那么该文件将具有所有67个狗单元的100个时间戳激活记录,并且字典中的每个其他单词都具有相同的激活记录(例如,100个单词x 67个数据点)。我对词典中的每个单词都进行了模拟,现在我想使用facet_wrap为每个模拟绘制一个图,绘制10个最活跃单词随时间的激活 我已经找到了将输出转换成时间X检测器矩阵的方法,然后根据每列的峰值激活对矩阵进行排序。然后我删除了除前10列以外的所有内容。对于像club这样的单词的单个模拟,我得到的数据如下所示(仅显示4个单词的输出标题:R ggplot facet\换行打印,其中每个打印的线名称都会更改,r,ggplot2,R,Ggplot2,你好(来自一个新手) 我正在用词识别的神经网络模型进行模拟。该模型基本上对词典中的每个单词都有多个时间对齐的检测器(例如,“dog”实际上有67个检测器,在连续的时间点对齐)。因此,模拟的输出是一个文件,在模拟的每个时间步激活每个单词检测器。因此,如果模拟运行100个周期,那么该文件将具有所有67个狗单元的100个时间戳激活记录,并且字典中的每个其他单词都具有相同的激活记录(例如,100个单词x 67个数据点)。我对词典中的每个单词都进行了模拟,现在我想使用facet_wrap为每个模拟绘制一个
> head(traceOut.top[,c(1,2,3,4,12)])
time kl^b.s3 kl^b.s4 klu.s3 Target
1 0 -0.01 -0.01 -0.01 kl^b
2 1 -0.01 -0.01 -0.01 kl^b
3 2 -0.01 -0.01 -0.01 kl^b
4 3 -0.01 -0.01 -0.01 kl^b
5 4 -0.01 -0.01 -0.01 kl^b
6 5 -0.01 -0.01 -0.01 kl^b
列名表示单词detect+alignment。“kl^b.s3”表示切片3处“club”(kl^b)的检测器(激活在几十个时间步后开始改变)。目标列表示已向模型提供的输入
然后我融化数据:
> traceOut.m2 <-melt(as.data.frame(traceOut.top),id.vars=c("time","Target"),variable.name="Word")
> head(traceOut.m2)
time Target Word Activation
1 0 kl^b kl^b.s3 -0.01
2 1 kl^b kl^b.s3 -0.01
3 2 kl^b kl^b.s3 -0.01
4 3 kl^b kl^b.s3 -0.01
5 4 kl^b kl^b.s3 -0.01
6 5 kl^b kl^b.s3 -0.01
问题是每个单词的前10个单词检测器是不同的。我希望每个绘图都有一个图例,其中只包括前10个列表。相反,创建一个图例,其中包含任何绘图中出现的所有单词检测器。我确实需要每个绘图中的特定列名,所以我不能将列名更改为有人知道这样做的方法吗
谢谢
jim好吧,我放弃了这一点——我认为这是不可能的。相反,当我读取每个文件时,我会创建一个带有项目特定图例的ggplot对象,将其保存到列表中,然后在读取所有文件后创建一个多面板绘图
例如:
plotList[[长度(plotList)+1]]
ggplot(traceOut.m2.all, aes(time,Activation,color=Word, shape=Word) ) +
facet_wrap(~ Target) +
geom_line(aes(label=Word))
plotList[[length(plotList) + 1]] <- ggplot(traceOut.m2, aes(time, Activation, color=Word) + geom_line(aes(label=Word))