我想逐步创建一个ggplot2,在这里我将一些行添加到现有的图中:
pl = ggplot()
pl = pl + somesetup
while(stillhavelines) {
df = getTheLine(fromsomewhere)
pl = pl + geom_line(aes(df$x,df$y),linetype=lt,colour=co) ## !!!!
}
ggsave(...)
奇怪的是,如果我这样做,那么所有线图都将从一个数据帧中显示出来。相反,我尝试将每个数据帧分配给它自己的变量。
如何告诉ggplot实际显示不同数据框中的行?为什么它甚至这样做,这是非常令人惊讶和不直观的。
答案 0 :(得分:1)
您可以使用<xsl:template match="@width[not(../@AutoWidth)]">
参数定义ggplot
图层中使用的数据:
data
如果未指定pl = pl + geom_line(data = df, aes(x = x, y = y), linetype = lt, colour = co)
,则会假定图层实际上每次都相同,因此它只显示最新的图层。
我用以下代码测试了它:
data
虽然作为Konrad Rudolph stated,我不确定在什么情况下你会想要这样做。在将数据绘制为更简单的library(ggplot2)
dat <- list(
data.frame(a = 1:5, b = 8:12),
data.frame(a = 11:15, b = 18:22),
data.frame(a = 21:25, b = 28:32)
)
p <- ggplot()
i <- 1
while(i <= length(dat)) {
df <- dat[[i]]
p <- p + geom_line(data = df, aes(a, b))
i <- i + 1
}
p
代码之前,最好先组织数据。