3

我正在尝试为我使用 R 收集的一些性能数据制作折线图。我想绘制每个 cpu 和总数的图表。我的 txt 文件中有一个名称列,我尝试将其设置为颜色,因为它们是因素。但是我收到此错误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

中间列是名称,右列是使用情况。我希望因为它使用了日期/时间是否完全相同的因素

4

1 回答 1

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

在此处输入图像描述

于 2013-02-13T19:10:18.527 回答