我正在尝试使用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。我希望,因为它使用了因素,如果日期/时间完全相同则无关紧要
答案 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"))