我一直在尝试用 ggplot 绘制线图。
我的数据看起来像这样:
I04 F04 I05 F05 I06 F06
CAT 3 12 2 6 6 20
DOG 0 0 0 0 0 0
BIEBER 1 0 0 1 0 0
并且可以在这里找到。
CAT
基本上,我们最初在一年中有一定数量的s(或其他生物)(这是 ),而在年底I04
有一定数量的s(这是)。这种情况持续了一段时间。 CAT
F04
我可以使用下面的代码相当简单地绘制这样的东西,并得到这个:
这太棒了,但对我来说效果不佳。毕竟,我每年都有这些盯着和结束的库存。所以我有兴趣了解初始值 ( I04, I05, I06
) 如何随时间变化。因此,对于每种动物,我想创建两条不同的线,一条用于初始数量,一条用于最终数量 ( F01, F05, F06
)。在我看来,现在我必须考虑两个因素。
考虑到我的数据设置方式,这真的很难。我不确定如何告诉 ggplot 所有I
前缀年份都是一个因素,所有F
前缀年份都是另一个因素。当数据框融化时,为时已晚。我不确定如何控制这种情况。
关于如何区分这些值或解决这种情况的另一种更好的方法的任何建议?
这是我的代码:
library(ggplot2)
library(reshape2)
DF <- read.csv("mydata.csv", stringsAsFactors=FALSE)
## cleaning up, converting factors to numeric, etc
text_names <- data.frame(as.character(DF$animals))
names(text_names) <- c("animals")
numeric_cols <- DF[, -c(1)]
numeric_cols <- sapply(numeric_cols, as.numeric)
plot_me <- data.frame(cbind(text_names, numeric_cols))
plot_me$animals <- as.factor(plot_me$animals)
meltedDF <- melt(plot_me)
p <- ggplot()
p <- p + geom_line(aes(seq(1:36), meltedDF$value, group=meltedDF$animals, color=meltedDF$animals))
p