[R] ggplot2: Controlling width of line

Brian Smith bsmith030465 at gmail.com
Fri Oct 30 15:43:36 CET 2015


Hi,

I was trying to increase the size of certain lines in my plot (samples 'B'
and 'D' in example below). However, when I try to modify the line size, I
seem to screw up the linetypes. Also, is there a way to reflect the line
size in the legend?

Here is some sample code for illustration:

library(reshape)
matx <- matrix(sample(1:1000),4,5)
colnames(matx) <-  LETTERS[1:5]
rownames(matx) <- 1:4

subset1 <- c('B','D')

ltyvect <- c("solid","longdash","longdash","solid","solid")
colvect <- c("red","black","orange","blue","lightblue")
lwdvect <- rep(1,ncol(matx))

## For subset of samples, increase line width size
fmakelwd <- function(set1,subset1,vals1,val2=2){
    idx <- set1 %in% subset1
    vals1[idx] <- val2
    return(vals1)
}

maty <- melt(matx)
set1 <- maty$X2
vals1 <- rep(1,length(set1))

mylwd <- fmakelwd(set1,subset1,vals1,val2=1.5)
matz <- data.frame(maty,mylwd)

##### code without trying to modify line size

p <- ggplot(data=matz,aes(x=X1, y = value,col=X2,lty=X2,shape=X2))
p <- p + geom_line(aes(group = X2)) + geom_point(aes(shape =
factor(X2)),size=3) +
    scale_linetype_manual(values = ltyvect) +
    scale_color_manual(values = colvect) +
    theme(legend.title = element_blank())
p


#####  modifying line size

p <- ggplot(data=matz,aes(x=X1, y =
value,col=X2,lty=X2,shape=X2,size=mylwd))
p <- p + geom_line(aes(group = X2,size=mylwd)) + geom_point(aes(shape =
factor(X2)),size=3) +
    scale_linetype_manual(values = ltyvect) +
    scale_color_manual(values = colvect) +
    scale_size(range=c(0.1, 2), guide=FALSE) +
    theme(legend.title = element_blank())
p


#################


thanks!!

	[[alternative HTML version deleted]]



More information about the R-help mailing list