-1

我正在尝试用 ggplot 绘制一个图,显示多个基本频率随时间变化的曲线。我正在查看不同类型的单词,每种类型都有来自多个标记的数据(为简单起见,我将这些类型称为 1、2 和 3,并将标记从 1 标记为 20)。对于简单的数据集,我只有十个时间点(标记为 1-10)和与它们相关的 F0 值。我想要一个图表,它在不同颜色的图表中具有不同类型的单词,但这些类型中的不同标记都在相同的颜色内。我想使用 aes(),“颜色”将由单词定义,x 是时间,y 是 f0 值。每当我尝试将我的数据编码到 R 中时,它都会告诉我我得到了未定义的列。我正在使用的代码如下所示:

theme_set(theme_bw())
myf0 <- ggplot(ent, aes(x = Time, groups = token, colour = word))
myf0 <- myf0 + geom_line(aes(y = F0), alpha = 0.8)
myf0 <- myf0 + ylab("Hz")

但是,当我绘制 myf0 时,它会告诉我:

Error in `[.data.frame`(data, "group") : undefined columns selected

我究竟做错了什么?谢谢!

澄清点:对不起,我忘了添加一段数据!这是它的样子:

  word token Time        F0
1    1     1    1  107.8968
2    1     1    2  113.1362
3    1     1    3  117.2904
4    1     1    4  127.3287
5    1     1    5  132.7554
6    1     1    6  126.4456
7    1     1    7 111.19686
8    1     1    8  93.87390
9    1     1    9  87.12876
10   1     1   10  86.40445

其中word从1到3,token从1到20(每个词类有20个token,所以总共60个token),每个token的时间从1到10,每个点都有一个F0值.

因此,对于简单示例,我的数据的一小段,我通过尝试使 ggplot 工作得到错误,如下所示:

   word token Time        F0
1     1     1    1 107.89677
2     1     1    2 113.13620
3     1     1    3 117.29039
11    1     2    1 117.0063
12    1     2    2 119.6887
13    1     2    3 116.1143
201   2     1    1 125.25897
202   2     1    2 119.52722
203   2     1    3 115.67006
211   2     2    1 101.54531
212   2     2    2 102.27651
213   2     2    3 100.96099
401   3     1    1  98.82212
402   3     1    2  98.82212
403   3     1    3  97.78813
411   3     2    1  95.15890
412   3     2    2  97.76110
413   3     2    3 100.42595

希望这可以帮助!谢谢!

4

1 回答 1

1

这是你想要的吗?单词中每个标记一行,按单词着色。

ent$word <- as.factor(ent$word)
ent$token <- as.factor(ent$token)

ggplot(ent, aes(x = Time, y = F0, group = interaction(word, token), colour = word)) +
  geom_line() + 
  ylab("Hz") +
  theme_bw()

在此处输入图像描述

于 2013-09-23T18:32:25.650 回答