Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 向ggplot对象添加图例(为什么有两个图例?)_R_Ggplot2 - Fatal编程技术网

R 向ggplot对象添加图例(为什么有两个图例?)

R 向ggplot对象添加图例(为什么有两个图例?),r,ggplot2,R,Ggplot2,我创建了一个ggplot2对象: a <- replicate(8,rnorm(100)) colnames(a) <- letters[1:8] b < -melt(a,id.vars=1:1) colnames(b) <- c("c","variable","value") ggplot(b,aes(x = c,y = value, colour = variable, linetype = variable)) + geom_line()+ geom_point

我创建了一个ggplot2对象:

a <- replicate(8,rnorm(100))
colnames(a) <- letters[1:8]
b < -melt(a,id.vars=1:1)
colnames(b) <- c("c","variable","value")

ggplot(b,aes(x = c,y = value, colour = variable, linetype = variable)) + 
geom_line()+
geom_point(aes(shape = factor(variable)), size = 1.7) +
scale_x_continuous(limits = c(-1, 1),
                   breaks = seq(-1, 1, 0.1),
                   expand=c(0.01, 0.01)) +
scale_y_continuous(limits = c(-1, 1),
                   breaks = seq(-1, 1, 0.1),
                   expand = c(0.01, 0.01))+ 
theme_bw(base_size = 12, base_family = "Helvetica") +
theme(axis.text=element_text(size = 10),
      axis.title=element_text(size = 10),
      text = element_text(size = 10),
      axis.line = element_line(size = 0.25),
      axis.ticks=element_line(size = 0.25),
      panel.grid.major = element_blank(),
     #panel.grid.minor = element_blank(),
      panel.border = element_rect(colour = "black", fill = NA, size = 0.5),
      panel.background = element_blank(),
      legend.position = "top" ,
      legend.direction = "vertical", 
      legend.title = element_blank(),
      legend.text = element_text(size = 13),           
      legend.background = element_blank(), 
      legend.key = element_blank()) +
labs(x = '', y = '', title = "") +
theme(plot.title = element_text(size=10)) +
theme(strip.text.x = element_text(size = 8,color="black"),
      strip.background = element_blank()) +
theme(strip.text.x = element_text(size = 8, colour = "black"))

a摘自本页的观点:

我编辑了您的代码以使数据可见(您的x轴限制有问题。请注意最后三行。这些命令告诉ggplot仅创建一个图例

a<-replicate(6,rnorm(100))
colnames(a)<-letters[1:6]
b<-melt(a,id.vars=1:1)
colnames(b)<-c("c","variable","value")

ggplot(b,aes(x=c,y=value,colour=variable,linetype=variable)) + 
geom_line() + geom_point(aes(shape=factor(variable)),size=1.7)+
scale_x_continuous(limits=c(0,100))+
scale_y_continuous(limits=c(-2,2),breaks=seq(-2,2,0.1),expand=c(0.01,0.01))+ 
theme_bw(base_size=12, base_family="Helvetica") +
theme(axis.text=element_text(size=10),
      axis.title=element_text(size=10),
      text = element_text(size=10),
      axis.line = element_line(size=0.25),
      axis.ticks=element_line(size=0.25),
      panel.grid.major = element_blank(),
      #panel.grid.minor = element_blank(),
      panel.border = element_rect(colour="black",fill=NA,size=0.5),
      panel.background = element_blank(),
      legend.position="top" ,
      legend.direction="vertical", 
      legend.title=element_blank(),
      legend.text=element_text(size=13),           
      legend.background=element_blank(), 
      legend.key=element_blank())+
labs(x='', y='',title="")+
theme(plot.title=element_text(size=10))+
theme(strip.text.x = element_text(size = 8,color="black"),strip.background=element_blank())+
theme(strip.text.x = element_text(size = 8,color="black"))+
scale_colour_discrete(name  ="Factor")+
scale_linetype_discrete(name  ="Factor") +
scale_shape_discrete(name  ="Factor")

a让我尽量减少您的代码,关注传奇问题。这就是您现在拥有的

ggplot(b,aes(x = c, y = value, colour = variable, linetype = variable)) + 
geom_line() +
geom_point(aes(shape = factor(variable)),size=1.7)
您的数据帧,
b
变量
作为因子。您可以在这里以两种方式使用它;
变量
因子(变量)
。您只需在
几何点
中对
形状
使用
变量
;使所有
变量
相同即可

ggplot(b,aes(x = c, y = value, colour = variable, linetype = variable)) + 
geom_line()+ 
geom_point(aes(shape = variable),size = 1.7)

我看到了一些与颜色和其他东西有关的警告信息。你可能想注意它们。但是,对于legend来说,这是一条路要走