如何使用R绘制每个组的线?

时间:2015-12-04 01:12:25

标签: r ggplot2

我认为这可能是与ggplot有关的问题,我有一个带有多键和超过1000行的data.table,其中两行可以设置为键。我想为每组数据集绘制一行。

例如,简单数据是(ID和Act是关键)

ID  ValueDate Act Volume
1 2015-01-01 EUR     21
1 2015-02-01 EUR     22
1 2015-01-01 MAD     12
1 2015-02-01 MAD     11
2 2015-01-01 EUR      5
2 2015-02-01 EUR      7
3 2015-01-01 EUR      4
3 2015-02-01 EUR      2
3 2015-03-01 EUR      6

以下是生成测试数据的代码:

dd <- data.table(ID = c(1,1,1,1,2,2,3,3,3), 
             ValueDate = c("2015-01-01", "2015-02-01", "2015-01-    01","2015-02-01", "2015-01-01","2015-02-01","2015-01-01","2015-02-01","2015-03-01"),
             Act = c("EUR","EUR","MAD","MAD","EUR","EUR","EUR","EUR","EUR"),
             Volume=c(21,22,12,11,5,7,4,2,6))

在这种情况下,我们可以看到总共有4个子集。图表应该是这样的: enter image description here

我尝试了下面的代码,但这不是我想要的:(:

ggplot(data=dd, aes(x=dd$ValueDate,
                    y=dd$Volume,
                    group=dd$ID,
                    shape=dd$Act)) +
  geom_line(size=1) +
  geom_point(size=3, fill="white")

enter image description here

非常感谢!!

1 个答案:

答案 0 :(得分:4)

我认为您所说的是,对于IDAct的每个独特组合,您需要一个单独的行。试试这个:

   ggplot(data = dd,
       aes(x = ValueDate,
           y = Volume,
           group = paste(ID, Act), 
           colour = paste(ID, Act),
           shape = Act)) +
    geom_line(size = 1) +
    geom_point(size = 3,
               fill = "white")

请注意,如果您声明dd$,则每个变量都不需要data = dd