![](/img/trans.png)
[英]R - plotting multiple time series, same x-axis values, but time is mixed within data frame
[英]Multiple curves with same Time x-axis in R
您能幫我解決這個問題嗎? 實際上,我想在帶有R的x軸(帶有時間標記)的R的同一圖形上繪制多條曲線。
我嘗試了這個:
dayTime = strptime(sapply(c(0:110)+480, function(x){paste(floor(x/60),":",x%%60, sep="")}), "%H:%M")
n = 10
pdf("myGraph.pdf")
plot(x=dayTime, y=rep(0, length(dayTime)), main="myGraph", xlab="Time", ylab="Level", type="n", ylim=c(0, 0.05), xaxt = "n")
for(i in 1:n)
{
lines(myData[, i]), col=i)
}
r = as.POSIXct(round(range(dayTime), "hours"))
axis.POSIXct(1, at=seq(r[1], r[2], by="hour"), format="%H")
legend("topleft", legend=stockspool, col=c(1:n), lwd=rep(1, n), cex=0.8)
dev.off()
但是問題是我不能在這種情況下添加帶有線的曲線,但是如果我僅使用plot繪制一條曲線,則效果很好。
非常感謝你。
以下解決方案使用ggplot2
:
首先創建一些樣本數據:
df = data.frame(id = rep(letters[1:5], each = 100),
time = rep(Sys.time() + 1:100, 5),
value = runif(500) + rep(1:5, each = 100))
> head(df)
id time value
1 a 2013-06-17 14:02:37 1.368671
2 a 2013-06-17 14:02:38 1.302188
3 a 2013-06-17 14:02:39 1.817873
4 a 2013-06-17 14:02:40 1.283439
5 a 2013-06-17 14:02:41 1.022949
6 a 2013-06-17 14:02:42 1.232590
並創建一個情節。
library(ggplot2)
ggplot(df, aes(x = time, y = value, color = id)) + geom_line()
使用基本圖形的解決方案:
df = data.frame(id = rep(letters[1:5], each = 100),
time = rep(Sys.time() + 1:100, 5),
value = runif(500) + rep(1:5, each = 100))
library(reshape2)
df <- dcast(df,time~id)
matplot(df[,1],df[,-1],type="l")
您可以按常規方式固定軸。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.