Good Afternoon R Community, I am working on plotting behavior codes over short durations of time (a few seconds at a time over 1-2 hrs). I am utilizing as.POSIXct to store the time. I wanted to make a quasi time line using these time. I utilized the segments function to represent these times. However the segments rounds off at the ends and does not have the crisp look I need for my purposes. I then used a "squared" point(pch=15)at the beginning and end of each of these segments to make it square. It looks like I want it to now but the point is centered over the ends of the segments meaning the segments get extended a bit in each direction. This distorts a segment that is only a few seconds long. How can I make nice squared end segments roughly lwd=6 and be accurate with the segment's begining and end point. I've included the code in this email and in a pastebin link:Link to the pastebin code: http://pastebin.com/raw.php?i=LYnZh1VD OS: win 7 R ver: 2.14 build XX<-structure(list(ID = structure(1:7, .Label = c("a", "b", "c", "d", "e", "f", "g"), class = "factor"), X1 = structure(1:7, .Label = c("A", "B", "C", "D", "E", "F", "G"), class = "factor"), Code.begin = structure(c(1318996823, 1318997163, NA, 1318997842, NA, 1319000172, 1319001123), class = c("POSIXct", "POSIXt"), tzone = ""), Code.end = structure(c(1318996828, 1318997168, NA, 1318997884, NA, 1319000229, 1319001142), class = c("POSIXct", "POSIXt"), tzone = ""), Code2.begin = structure(c(1318996823, 1318997163, NA, 1318997842, 1318997962, NA, 1319001123), class = c("POSIXct", "POSIXt"), tzone = ""), Code2.end = structure(c(1318996828, 1318997168, NA, 1318997884, 1318998120, NA, 1319001142), class = c("POSIXct", "POSIXt"), tzone = "")), .Names = c("ID", "X1", "Code.begin", "Code.end", "Code2.begin", "Code2.end"), row.names! = c(NA, -7L), class = "data.frame") x <- as.POSIXct(paste(substr(Sys.time(), 1, 10), "00:00:00", sep=" "))Start <- rep(x, ncol(XX))a <- as.vector(na.omit(difftime(XX$Code.begin, x, units="secs")))b <- as.vector(na.omit(difftime(XX$Code.end, x, units="secs")))d1<-substr(as.character(x),1,10)d <- seq(x, as.POSIXct(paste(d1," 01:20:00 EDT", sep="")), by=150 )e <- 0:(length(d)-1)f <- na.omit(XX$Code.end)g <- paste(a, ", ", "27, ", b, ", ", "27", sep="")r <- c(x, as.POSIXct(paste(d1," 01:20:00 EDT", sep=""))) x11(15,3)######################################plot(d, e, type="n", xlab="",ylab="", axes=FALSE, xaxs = "i")axis.POSIXct(1, at=seq(r[1], r[2], by="mins"), format="%H:%M:%S", tcl = -1, tick=FALSE) #tcl = -0.2axis.POSIXct(1, at=seq(r[1], r[2], by=360), tcl = -1.1, labels = FALSE)#, lwd=2) axis.POSIXct(1, at=seq(r[1], r[2], by=60), tcl = -.7, labels = FALSE) axis.POSIXct(1, at=seq(r[1], r[2], by=15), tcl = -.35, labels = FALSE) title(main="Codes Over Time of Transcript",xlab! ="Transcript Time (min)", ylab="Codes") par(yaxt="n")lablist.y<-as.vec tor(c("Code 1", "Code 2", "Code 3"))axis(2, at=seq(2, 27, length=3), labels = FALSE)text(y = seq(2, 27, length=3), par("usr")[1], labels = lablist.y, srt = 35, pos = 2, xpd = TRUE) grid(nx=80, ny=3, lty="solid", col="gray90")box() segments(XX$Code.begin,27, XX$Code.end, 27, lwd=6, lty="solid", col="black")points(c(XX$Code.begin, XX$Code.end), rep(27, 14), pch=15, cex=.83) [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.