对于min.n错误,获取范围太小

时间:2013-02-13 18:57:07

标签: r ggplot2

我正在尝试使用R收集一些性能数据的折线图。我想绘制每个cpu和总数。我的txt文件中有一个Names列,我尝试将其设置为颜色,因为它们是因素。但是我收到此错误Error in prettyDate(x = x, n = n, min.n = min.n, sep = sep, ...) : range too small for min.n 这是我的代码。

library(ggplot2)
setwd("../../../PerfLogs")
cpu<-read.delim("CPUUsage.txt", header=FALSE, sep="\t")
names(cpu)<-c("Date", "Name", "Usage")
dates<-as.character(cpu$Date)
dates<-strptime(cpu$Date, "%m/%d/%Y %I:%M:%S %p")
cpu$Date<-dates
graph<-ggplot(cpu, aes(cpu$Date, cpu$Usage, colour=cpu$Name)) + geom_line(size=1.0)
graph

以下是来自CPUUsage.txt的一些示例数据

2/13/2013 1:37:17 PM    0   0
2/13/2013 1:37:17 PM    1   18
2/13/2013 1:37:17 PM    2   6
2/13/2013 1:37:17 PM    3   18
2/13/2013 1:37:17 PM    4   6
2/13/2013 1:37:17 PM    5   18
2/13/2013 1:37:17 PM    6   6
2/13/2013 1:37:17 PM    7   6
2/13/2013 1:37:17 PM    _Total  10
2/13/2013 1:37:18 PM    0   16
2/13/2013 1:37:18 PM    1   5
2/13/2013 1:37:18 PM    2   28
2/13/2013 1:37:18 PM    3   0
2/13/2013 1:37:18 PM    4   22
2/13/2013 1:37:18 PM    5   5
2/13/2013 1:37:18 PM    6   5
2/13/2013 1:37:18 PM    7   16
2/13/2013 1:37:18 PM    _Total  12

中间列是Name,右列是Usage。我希望,因为它使用了因素,如果日期/时间完全相同则无关紧要

1 个答案:

答案 0 :(得分:4)

错误消息是由于您的x值为datetime并且两个值之间的差异仅为一秒(太小而无法显示数据)。您必须使用scale_x_datetime()并将breaks设置为"1 sec"以显示您的数据。

library(ggplot2)
library(scales)
ggplot(cpu, aes(Date, Usage, colour=Name)) + 
   geom_line(size=1) + 
   scale_x_datetime(breaks = date_breaks("1 sec"))

enter image description here