为什么ggplot2图例没有显示在图中

a.x*_*xue 6 r legend ggplot2

我使用 ggplot 散点图 2 个数据集,并希望在左上角显示图例。我尝试了一些代码,但没有用。我不确定为什么会这样。

ggplot(mf, aes(log10(mf[,2]),mf[,1])) 
+ ggtitle("Plot") 
+ geom_point(color = "blue") +  theme(plot.margin = unit(c(1,2,1,1), "cm"))
+ xlab("xxx") + ylab("yyy") 
+ theme(plot.title = element_text(size=18,hjust = 0.5, vjust=4)) 
+ geom_point(data=mf2,aes(log10(mf2[,2]),mf2[,1]),color="red") 
+ theme(axis.title.x = element_text(size = rel(1.3))) 
+ theme(axis.title.y = element_text(size = rel(1.3))) 
+ scale_color_discrete(name = "Dataset",labels = c("Dataset 1", "Dataset 2"))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

9He*_*ads 11

由于没有提供值,我使用了我自己的值来进行演示。

mf是一个dataframewithlogvalas 的列。

您需要将颜色参数放在美学中。这将导致图例的颜色映射。之后,您可以手动缩放颜色以获得您想要的任何颜色。

您可以使用以下代码来获得所需的结果。

ggplot(mf, aes(val,log))+
    geom_point(aes(color = "Dataset1"))+
    geom_point(data=mf2,aes(color="Dataset2"))+
    labs(colour="Datasets",x="xxx",y="yyy")+
    theme(legend.position = c(0, 1),legend.justification = c(0, 1))+
    scale_color_manual(values = c("blue","red"))
Run Code Online (Sandbox Code Playgroud)

输出