【发布时间】:2015-05-14 16:04:02
【问题描述】:
我对 R 很陌生,我一直在努力根据特定条件制作一个漂亮的情节。
我想出了如何使用scale_x_datetime 来修改xlim,并且我想出了如何在我有一列时过滤我的数据。然后很容易绘制,但这不是我需要的。
现在我有一个包含 8 列和一个时间戳的数据集,我想绘制大于或小于特定阈值的值,如上例所示,但对于每一列,在一个图上。但是,每列中具有这些值的行是不同的。我需要类似 if 语句的东西,但我正在寻找一种在绘图本身内执行此操作的方法,无需过滤、创建新向量等。
这是数据:
timestamp tempcore
2015-01-01 00:00:00 3.5
....
2015-01-31 23:45:00 7.5
我目前的代码:
library(scales)
filter <- mydata[mydata$tempcore<"4" | mydata$tempcore>"7",]
q <- ggplot(data = mydata) +
geom_point(data = filter, aes(x = timestamp, y= tempcore)) +
scale_x_datetime(labels=date_format("%d"),
breaks = "1 day",
limits = as.POSIXct(c("2015-01-01 00:00:01",
"2015-01-31 23:59:59")))
有什么建议吗?
它是这样的:
structure(list(tempcore = c(7.852258, 4.95238, 4.945056, 4.969474,
4.967037, 1.30402, 1.90476, 2.54945, 2.29304, 1.70208), Core14.2 = c(1.36508,
1.36997, 1.25518, 1.28693, 1.18438, 1.13798, 1.17949, 1.16728,
1.28693, 1.74848), Core14.3 = c(3.57998, 3.02808, 2.43224, 2.17583,
2.08546, 1.8486, 1.78754, 1.77778, 1.8022, 1.68986), Core14.4 = c(4.564103,
1.03785, 1.77534, 2.57876, 2.09768, 1.56776, 1.14286, 4.937724,
4.869356, 4.664221), Core24.1 = c(1.0232, 1.0232, 1.03785, 1.02076,
1.02564, 1.34798, 1.44566, 1.66789, 1.45544, 1.34554), Core.24.2 = c(2.00977,
4.522583, 1.16484, 1.79487, 1.79732, 2.11966, 4.693522, 1.57998,
9.89255, 3.16484), Glass.shade = c(3.96, 3.65, 4.23, 4.46, 4.19,
3.77, 3.77, 4.31, 4.89, 6.75), AR7 = c(4.88, 4.88, 4.92, 4.92,
4.92, 4.88, 4.88, 4.88, 4.84, 4.84), timestamp = structure(1:10, .Label = c("2015-01-01 00:00:00",
"2015-01-01 00:15:00", "2015-01-01 00:30:00", "2015-01-01 00:45:00",
"2015-01-01 01:00:00", "2015-01-01 01:15:00", "2015-01-01 01:30:00",
"2015-01-01 01:45:00", "2015-01-01 02:00:00", "2015-01-01 02:15:00"
), class = "factor")), .Names = c("Core14.1", "Core14.2", "Core14.3",
"Core14.4", "Core24.1", "Core.24.2", "Glass.shade", "AR7", "timestamp"
), class = "data.frame", row.names = c("1", "2", "3", "4", "5",
"6", "7", "8", "9", "10"))
【问题讨论】:
-
对不起,我忘记添加图片了-imgur.com/KOLtfgl
-
请提供一些数据以作为最小可重复的示例。
-
在问题中(可以编辑),请使用
dput(yourdata)的输出。