Plotting ‘time’ values

Data in ‘time’ format seems to need a different type of process to plot properly. This code uses strptime to get a proper graph. I have plotted two sets of data on the same plot. This is not visually appealing but serves the purpose. So here the linux ‘pmap’ ouput, ‘Kbytes’ and ‘RSS’ are both plotted against the same time values.

The y-axis label colours differentiate the graphs from one another.


13:07:05 2691296 1600864 1583804
13:08:45 2691296 1601280 1584220
13:10:25 2691296 1601280 1584220
13:12:05 2691296 1601480 1584420
13:13:45 2691296 1601820 1584760
13:15:25 2691296 1601852 1584792
13:17:05 2691296 1601960 1584900
13:18:45 2691296 1601996 1584936
13:20:25 2691296 1603548 1586488


this.dir <- dirname(parent.frame(2)$ofile) 
setwd(this.dir)


data = read.table("D:\\Log analysis\\pmapdata-node1.1",header=F)
colnames(data) <- c("Time","Kbytes","RSS","Dirty Mode")


png(
"pmapanalysis4705.png",
width = 2324, height = 868)
par(mar=c(7, 9, 6, 8))

plot(strptime(data$Time,"%H:%M:%S"),data$Kbytes,pch=0,type="b",col = "red", col.axis="red", ylab="", xlab="",las=2,lwd=2.5,cex.axis=1.5)
title("",cex.main=3,xlab="Time", line=5.2,ylab="Kbytes", cex.lab=2,1)
par(new=T)
plot(strptime(data$Time,"%H:%M:%S"),data$RSS,col="blue",cex.axis=1.3,col.axis="blue",pch=6,type="b",xaxt="n",ylab="",xlab="",las=2,lwd=2.5)
legend("topleft", lty=c(1,1),lwd=c(3.5,3.5),c("Kbytes","RSS"), fill=c("red","blue"))
box()

dev.off()

 

pmapanalysis4705

One problem with this graph is that very few time values are plotted on the x-axis. I don’t know the reason for this but when I asked the ‘R’ forum Jim Holtman suggested this code.


this.dir <- dirname(parent.frame(2)$ofile) 
setwd(this.dir)


data = read.table("D:\\Log analysis\\pmapdata-node1.1",header=F)
colnames(data) <- c("Time","Kbytes","RSS","Dirty Mode")


png(
"pmapanalysis4705.png",
width = 2324, height = 868)
par(mar=c(7, 9, 6, 8))

data$tod <- as.POSIXct(paste('2013-08-28', data$Time))
plot(data$tod,data$Kbytes,type="b",col = "blue", ylab="", xaxt = 'n', xlab="",las=2,lwd=2.5, lty=1,cex.axis=1.5)
# now plot you times
axis(1, at = data$tod, labels = data$Time, las = 2)

box()

dev.off()

 

pmapanalysis4705

Update : Suggestion from Jim Lemon to use ‘plotrix’

this.dir <- dirname(parent.frame(2)$ofile) 
setwd(this.dir) 


data = read.table("D:\\Log analysis\\pmapdata-node1.1",header=F)
colnames(data) <- c("Time","Kbytes","RSS","Dirty Mode")


png(
  "pmapanalysis4705.png",
   width = 2324, height = 868)
par(mar=c(7, 9, 6, 8))

plot(strptime(data$Time,"%H:%M:%S"),data$Kbytes,pch=0,
  type="b",col="red",col.axis="red", ylab="",
  xlab="",las=2,lwd=2.5,xaxt="n")
library(plotrix)
staxlab(at=as.numeric(strptime(data$Time,"%H:%M:%S")),
  labels=as.character(data$Time),nlines=3,srt=90)

box()

dev.off()

pmapanalysis4705

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: