【问题标题】:Ggplot, how to have two lines in same chart and have it produce a legendGgplot,如何在同一个图表中有两条线并让它产生一个图例
【发布时间】:2021-10-03 14:03:15
【问题描述】:

以下是示例代码。它产生一个两折线图。但是,传说不会填充。我知道如何为图例添加代码。但是,在这种情况下,代码可以工作(不会产生错误),但不会出现图例。关于我缺少什么的任何想法?期望的结果将在底部显示 AvgFSize 及其对应的颜色以及 AvgHSize 及其对应的颜色。

 avgFSize1<-c(2,4,5,6,7,8,9,10,11)
 avgHSize1<-c(4,5,7,9,10,12,13,15,17)
 year1<-c(2010,2011,2012,2013,2014,2015,2016,2017,2018)
 singleh<-c(101,102,103,105,106,107,111,113,118)

 library(dplyr)
 library(ggplot2)


 testitem <- data.frame(avgFSize1, avgHSize1, year1, singleh)


chart26<-testitem%>%ggplot(aes(x=year1))+
geom_line(aes(y=avgHSize1), color = "black")+
geom_line(aes(y=avgFSize1), color = "red")+theme(legend.position="bottom", legend.box = 
"horizontal")+ggtitle("Average Household and Family Size")+
labs(y="AVerage Household and Family Size")

chart26

【问题讨论】:

    标签: r ggplot2 dplyr


    【解决方案1】:

    基本上你做了所有正确的事情,但忘记将color 移动到mapping = aes() 中。

    testitem %>% ggplot(aes(x=year1))+
            geom_line(aes(y=avgHSize1, color = "black"))+
            geom_line(aes(y=avgFSize1, color = "red"))  +
            theme(legend.position="bottom", legend.box = "horizontal")+
            ggtitle("Average Household and Family Size")+
            labs(y="AVerage Household and Family Size") +
            scale_color_manual(
                    labels = c("Household Size", "Family Size"),
                    values = c("black", "red")
            )
    

    【讨论】:

    • 如何让图例显示“AvgFSize”和“AvgHSize”?
    猜你喜欢
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多