【问题标题】:Why ggplot2 legend not show in the graph [duplicate]为什么ggplot2图例未显示在图中[重复]
【发布时间】:2017-04-19 10:10:23
【问题描述】:

我使用 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"))

【问题讨论】:

    标签: r ggplot2 legend


    【解决方案1】:

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

    mf 是一个dataframe,其中logval 是它的列。

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

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

    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"))
    

    【讨论】:

    • 我有另一种方法,它使用“reshape2”和“melt”将两个数据集合并在一起。但是你的方法要优雅得多!
    猜你喜欢
    • 2013-03-03
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多