【问题标题】:Bar and stacked bars on one plot in ggplot2ggplot2中一个图上的条形图和堆积条形图
【发布时间】:2015-02-11 21:45:37
【问题描述】:

晚上好,有人可以帮忙策划一下吗?我有一些这样的数据:

    DF <- data.frame(
        country_dest=c("Russia", "Germany", "Ukraine" ,"Kazakhstan", 
        "United States", "Italy", "Israel", "Belarus"),
        SumTotal=c(7076562,2509617,1032325,680137,540630,359030,229186,217623)
    )

用单独的 8 个条来绘制它并不是什么大问题,但我想知道是否可以用 3 个条绘制一个图,其中第一个条将包含俄罗斯的数据(例如),第二个将是德国、乌克兰、哈萨克斯坦、美国和意大利的叠条可能有一些传说来了解谁是谁,第三条是白俄罗斯和以色列的叠条。

在互联网上,我找到了一个使用 0 值创建新 DF 的解决方案,但不太明白。

比你提前!

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    好吧,您需要将分组信息添加到您的数据中。然后它变得直截了当。这是一种策略

    #define groups
    grp <-c("Russia"=1, "Germany"=2, "Ukraine"=2,"Kazakhstan"=2, 
            "United States"=2, "Italy"=2, "Israel"=3, "Belarus"=3)
    DF$grp<-grp[as.character(DF$country_dest)]
    
    #ensure plotting order
    DF$country_dest <- factor(DF$country_dest, levels=DF$country_dest)
    
    #draw plot
    ggplot(DF, aes(x=grp, y=SumTotal, fill=country_dest)) + 
        geom_bar(stat="identity")
    

    这会给你

    您可能希望给您的小组一个更具描述性的标签。

    【讨论】:

    • 它有效,但我必须交换代码行 DF$country_dest