【问题标题】:How can I use ggplot() to create this plot?如何使用 ggplot() 创建此图?
【发布时间】:2020-04-06 13:01:35
【问题描述】:

这是我的数据框:

library(ggplot2)
Year <- c(2019,2018,2017,2016,2015)
googlerev <- c(161857,136819,110855,90272,74989)
ibmrev <- c(77147,79591,79139,79919,81741)
df <- data.frame(Year, googlerev, ibmrev)
df
#>   Year googlerev ibmrev
#> 1 2019    161857  77147
#> 2 2018    136819  79591
#> 3 2017    110855  79139
#> 4 2016     90272  79919
#> 5 2015     74989  81741

如何制作如下图所示的情节:

(Revenue 代表 google rev 和 ibmrev 的值)。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    我们可以使用 tidyr 包中的pivot_longer 来更改您的数据,然后使用geom_col

    library(tidyr) 
    
    df %>%
        pivot_longer(cols = -Year, names_to = "company", values_to = "revenue") %>%
        ggplot(aes(Year, revenue, fill = company))+
        geom_col(position = 'dodge')
    

    【讨论】:

      【解决方案2】:

      使用长格式数据来控制 ggplot 行为会更容易。您可以为此使用reshape2 包。

      library(ggplot2)
      df <- reshape2::melt(df, id.vars = "Year")
      
      ggplot(df, aes(x = Year, y = value, fill = variable)) +
         geom_bar(stat = "identity", position = "dodge") +
         labs(x = "Year", y = "Revenue") 
      

      【讨论】:

        猜你喜欢
        • 2013-01-16
        • 2020-05-23
        • 2017-04-28
        • 2015-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多