【问题标题】:Multiple curves with same Time x-axis in RR中具有相同时间x轴的多条曲线
【发布时间】:2013-06-17 11:30:12
【问题描述】:

请您帮我解决这个问题。事实上,我想在 R 上的同一张图上绘制多条曲线,x 轴带有时间标记。

我试过这个:

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 绘制一条曲线,它就可以正常工作。

非常感谢。

【问题讨论】:

  • 您需要将 x 和 y 值传递给lines。我建议使用matplot 而不是您的方法。包 ggplot2 将是另一种选择。
  • 请在发布之前检查您的代码,其中有错误。并且,请通过向我们提供可重现的示例(即代码和示例数据)来帮助我们帮助您,有关详细信息,请参阅stackoverflow.com/questions/5963269/…
  • @Roland :实际上,我已经尝试按照您的建议将 x 和 y 传递给 italic bold lines,但它不起作用!但是使用包 italic bold ggplot2 正如 Paul Hiemstra(波纹管)所建议的那样,为我提供了我正在寻找的解决方案。

标签: r plot statistics curves


【解决方案1】:

以下解决方案使用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()

【讨论】:

  • 非常感谢!这个包解决了我绘制一些图表的许多问题。
【解决方案2】:

使用基础图形的解决方案:

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")

您可以按照通常的方式固定轴。

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 2021-07-18
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多