我认为这可能是与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个子集。图表应该是这样的:
我尝试了下面的代码,但这不是我想要的:(:
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")
非常感谢!!
答案 0 :(得分:4)
我认为您所说的是,对于ID
和Act
的每个独特组合,您需要一个单独的行。试试这个:
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
。