X标度值在带格的R图上非常紧凑 [英] X scale values very compacted on R plots with lattice
问题描述
我正在使用以下代码来生成图:
I'm using this code to generate a plot:
require(lattice)
allcol <- c("blue","chocolate4","cornflowerblue","chartreuse4","brown3","darkorange3","darkorchid3","red","deeppink4","lightsalmon3","yellow","mistyrose4","seagreen3","green","violet","palegreen4","grey","slateblue3","tomato2","darkgoldenrod2","chartreuse","orange","black","yellowgreen","slategray3","navy","firebrick1","darkslategray3","bisque3","goldenrod4","antiquewhite2","coral","blue4","cyan4","darkred","orangered","purple4","royalblue4","salmon")
names(logfile2d) <- c("Date","Client","Operations")
logfile2d <- read.table(file="/var/lib/nfs-estadoclientes/nfsclients-2d.log")
logfile=logfile2d
col=allcol[0:length(levels(logfile$Client))]
svg(filename="/var/lib/nfs-estadoclientes/nfsclients-2d.svg",width=14,height=7)
xyplot(Operations~Date,group=Client,data=logfile,jitter.x=T,jitter.y=T,
aspect = 0.5, type = "l",
par.settings=list(superpose.line=list(col=col,lwd=3)),
xlab="Time", ylab="Operations", main="NFS Operations (last 2 days, only clients with >40 operations/sec)",
key=list( text=list(levels(logfile$Client)), space='right',
lines=list(col=col),columns=1,lwd=3,cex=0.75))
dev.off()
但是生成的图会打印很多X比例值,并且无法读取. X标度值是日期和小时,格式为:上/天小时:分钟".似乎R并没有将这些值当作数字来获取,而是试图写下所有这些值.
But the generated plot prints way much X scale values, and they can't be read. The X scale values are a date and an hour, on this format: "mounth/day hour:minute". It seems that R don't get these values as numbers, and tries to write down all of them.
> dput(head(logfile$Date))
structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = c("01/09-06:43",
"01/09-06:53", "01/09-07:03", "01/09-07:13", "01/09-07:23", "01/09-07:33",
"01/09-07:43", "01/09-07:53", "01/09-08:03", "01/09-08:13", "01/09-08:23",
"01/09-08:33", "01/09-08:43", "01/09-08:53", "01/09-09:03", "01/09-09:13",
"01/09-09:23", "01/09-09:33", "01/09-09:43", "01/09-09:53", "01/09-10:03",
"01/09-10:13", "01/09-10:23", "01/09-10:33", "01/09-10:43", "01/09-10:53",
"01/09-11:03", "01/09-11:13", "01/09-11:23", "01/09-11:33", "01/09-11:43",
"01/09-11:53", "01/09-12:03", "01/09-12:13", "01/09-12:23", "01/09-12:33",
"01/09-12:43", "01/09-12:53", "01/09-13:03", "01/09-13:13", "01/09-13:23",
"01/09-13:33", "01/09-13:43", "01/09-13:53", "01/09-14:03", "01/09-14:13",
"01/09-14:24", "01/09-14:33", "01/09-14:43"), class = "factor")
也许最好的策略是忽略中间值,但我不知道如何做.我不知道如何让R也不知道这些都是数值.
Maybe the best strategy is to omit intermediate values, but I don't know how. I don't know how to make R aware that these are numeric values neither.
推荐答案
由于同时具有日期和时间信息,因此您实际上需要strptime
和as.POSIXct
.
这应该将您的Date
列转换为R可以正确绘制的实际日期/时间变量.运行这些命令后,再试一次您的绘图命令.
You actually need strptime
and as.POSIXct
as you have both date and time information.
This should convert your Date
column into an actual date/time variable that R will plot correctly. Try your plotting command again after running these.
times <- as.POSIXct(strptime(levels(logfile$Date), format="%m/%d-%H:%M"))
logfile$Date <- times[logfile$Date]
这篇关于X标度值在带格的R图上非常紧凑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!