在ggplot2散点图中绘制2个数据集时,在图例中使用linestyle问题

时间:2015-12-11 16:50:06

标签: r plot ggplot2

我想使用ggplot2将一些数值分析结果与分析解决方案进行比较。我正在用连续的实线和带点的数值解决方案绘制分析解决方案。唯一的问题是在图例中,其中显示了数值结果(FVM)的行。我只想在“FVM”的图例中显示一个圆圈,而不是直线和圆圈。你能帮忙吗?这是我的剧本和情节:

library(ggplot2)
xa <- seq(0, 1, by = .01)
phia<- -(exp(2.5*xa/0.1)-1)/(exp(2.5/0.1)-1)+1
anal.dat <-data.frame(x=xa,y=phia)
xc <- c (0.258065 , 0.645161 , 0.83871 , 0.935484 , 0.983871)
phic <- c (0.99869, 0.984046, 0.905865, 0.677627, 0.287415)
cfd.data <- data.frame(x=xc,T=phic)
p <- ggplot(data=NULL)
p + geom_line(data=anal.dat, aes(x, y,colour="Analytical"),size = 1) + geom_point(data=cfd.data,aes(x, T,colour="FVM"),size = 4,shape=16) + theme_bw() + labs(x = "x",y=expression(phi)) + scale_colour_manual(name='', values=c('Analytical'='deepskyblue','FVM'='firebrick1'))

enter image description here

1 个答案:

答案 0 :(得分:4)

使用guide_legend覆盖当前图例。

p + geom_line(data=anal.dat, aes(x, y,colour="Analytical"),size = 1) +
  geom_point(data=cfd.data,aes(x, T,colour="FVM"),size = 4,shape=16) +
  theme_bw() + labs(x = "x",y=expression(phi)) +
  scale_colour_manual(name='', values=c('Analytical'='deepskyblue','FVM'='firebrick1')) +
  guides(colour = guide_legend(override.aes = list(shape = c(NA, 19), linetype = c("solid", "blank"))))

输出是 output

这是list of symbols numbers(我用了19)。