ggplot - 改变线宽

时间:2012-08-30 12:09:22

标签: r ggplot2

我可以通过做这样的事情来绘制ggplot2中不同颜色的每个系列......

colours <- c('red', 'blue')
p <- ggplot(data=m, mapping=aes_string(x='Date', y='value'))
p <- p + geom_line(mapping=aes_string(group='variable', colour='variable'), size=0.8)
p <- p + scale_colour_manual(values=colours)

我能为每个系列设置不同的线宽吗? (即。我想使用粗红线绘制趋势,使用细蓝线绘制经季节性调整的系列。)

2 个答案:

答案 0 :(得分:12)

我只想在数据框中添加一个新的数字变量

##You will need to change this to something more appropriate
##Something like: 
##m$size = as.numeric(m$variable == "seasonal")
m$size = rep(c(0, 1), each=10)

然后在绘图命令中添加尺寸美学:

p = p + geom_line(aes(group=variable, colour=variable, size=size))
##Set the size scale
p + scale_size(range=c(0.1, 2), guide=FALSE)

请注意,我添加了guide=FALSE以避免显示尺寸图例。

答案 1 :(得分:7)

你可以这样做:

x <- 1:10
y1 <- x
y2 <- 1.5*x
df <- data.frame(x=rep(x, 2), y=c(y1, y2), id=as.factor(rep(1:2, each=10)))
ggplot(df) + geom_line(aes(x=x,y=y,group=id, colour=id, size=id)) +  
scale_size_manual(values=c(1,4))