2013-02-13 1 views
3

Я пытаюсь сделать линейный график некоторых данных о производительности, которые я собрал с помощью R. Я хочу, чтобы график каждого процессора и общее количество. У меня есть столбец «Имена» в моем txt-файле, и я пытаюсь установить его в цвет, поскольку это факторы. Однако я получаю эту ошибку Error in prettyDate(x = x, n = n, min.n = min.n, sep = sep, ...) : range too small for min.n Вот мой код.Получение диапазона слишком мало для min.n error

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 

В средней колонке это имя и правый столбец Использование. Я надеялся, что, поскольку он использовал факторы, это не имело бы значения, если дата/время были точно такими же.

+0

Было бы лучше использовать 'dput (головка())', а не вставляя данные в этом случае, как ваша колонка раз сделает это разочарование для людей, чтобы использовать 'read.table (текст = 'и т.д. –

ответ

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

Смежные вопросы