[R] Square ended segments

Sarah Goslee sarah.goslee at gmail.com
Wed Oct 19 23:34:27 CEST 2011


Hi Tyler,

Your code is unreadable, but take a look at ?par and search for lend.

?par is the first place to look for all base graphics settings.

Sarah

On Wed, Oct 19, 2011 at 5:26 PM, Tyler Rinker <tyler_rinker at hotmail.com> wrote:
>
> 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)
>
>
>



-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list