分别调整geom_point()和geom_line()

时间:2014-05-22 11:30:15

标签: r ggplot2

我正在尝试使用ggplot创建一个简单的图。问题是生成的绘图仅调整线型但不显示点。这是一个有效的例子:

a <- matrix(NA, ncol=2, nrow=9)
a[,1] <- rnorm(9)
a[,2] <- runif(9)

colnames(a)<-c("first","second")


a <- melt(a,id.vars=1:1)
colnames(a)<-c("c", "variable", "value")
b <- c("a","b","c","d","e","f","g","h","i","a","b","c","d","e","f","g","h","i")
f <- cbind(b,a)
f$variable <- factor(f$variable, levels=c("first", "second"))
colnames(f) <- c("b","c","variable","value")

ggplot(f, aes(x=b, y=value, colour=variable, size=variable, linetype=variable, group=variable)) + geom_point() + geom_line()+scale_colour_manual(values=c("blue3","red3"))+scale_linetype_manual(values=c(1,1))+scale_size_manual(values=c(0.3,0.3))+theme_bw()

我的问题是显示了这些线条,但我还希望在X轴的每个值上都有Y值的点。

1 个答案:

答案 0 :(得分:2)

您的代码中存在多个问题。首先,如果您需要两条线的相同线型(您使用scale_linetype_manual()将它们设置为相同的类型),那么就不要在linetype=variable内使用aes()。第二个问题是尺寸。您还可以在size=variable的{​​{1}}内使用aes(),然后再次使用ggplot()使两个级别相同。如果size =变量在scale_size_manual()内,则会影响点和线的大小。

ggplot()size=内的行geom_line()设置不同的大小,以及您需要的实际尺寸。

geom_point()

enter image description here