【问题标题】:ggplot bar graph and error messageggplot 条形图和错误信息
【发布时间】:2018-05-19 03:03:07
【问题描述】:

我需要以下数据集的两张图表。

1) 首先只有一个条形显示 NonProm,Promo1,Promo2 用不同的颜色来比较销售额

2) 第二个,每个促销有三个不同的条形,再次进行比较

data = data.frame(
  Promotion =c('NonProm','Promo1','Promo2'),
  Sales = c(1616408,95219,92365))

第二个我试过了,但我收到了错误消息

p<-ggplot(data=data, aes(x=Promotion , y=Sales)) +
   geom_bar(width=1) +
   scale_y_continuous(expand = c(0,0))  
p

"不知道如何自动选择对象类型的比例 功能。默认为连续。错误(函数(...,row.names = NULL, check.rows = FALSE, check.names = TRUE, : 参数暗示不同的行数:0, 5"

谢谢。

【问题讨论】:

  • 你需要 stat=identitygeom_bar() 中。试试下面的ggplot(data=data1, aes(x=Promotion , y=Sales)) + geom_bar(stat = "identity", width = 1) + scale_y_continuous(expand = c(0,0))

标签: r ggplot2


【解决方案1】:

我不确定你所说的 #1 是什么意思,但请试试这个。我在 R Studio 中做到了这一点。我在这里找到了示例代码:http://www.sthda.com/english/wiki/ggplot2-barplots-quick-start-guide-r-software-and-data-visualization

data = data.frame(
  Promotion =c('NonProm','Promo1','Promo2'),
  Sales = c(1616408,95219,92365))
data

library(ggplot2)

# Change barplot fill colors by groups
p<-ggplot(data, aes(x=Promotion, y=Sales, fill=Promotion)) +
  geom_bar(stat="identity")+theme_minimal()
p

【讨论】:

    【解决方案2】:

    对于问题 #1,要获得堆叠条形图,您需要具有相同 x 位置的值。在更大的数据集中,您可能有一个销售日期、销售人员等的 x 值。由于您的数据中没有另一列这样的列,我只是在 aes 中放置了一个虚拟值设置x

    ggplot2 的最新版本中,geom_bar 假定您要绘制类别计数,而不是值本身,因此要绘制实际值,您可以使用 geom_bar(stat = "identity")geom_col()。要堆叠条形图,请设置 position = "stack"

    对于问题 #2,我没有收到您的代码错误,而是得到了:

    错误:stat_count() 不得与 y 美学一起使用。

    这是因为geom_bar 假设它将计算观察结果,这与提供 y 美学相冲突。

    请注意,我为条形设置了填充和颜色,因为我保留了您的 width = 1。这使得很难区分一个小节和另一个小节。

    library(tidyverse)
    
    data <- data.frame(
      Promotion =c('NonProm','Promo1','Promo2'),
      Sales = c(1616408,95219,92365))
    
    ggplot(data, aes(x = "Promotions", y = Sales, fill = Promotion)) +
      geom_col(position = "stack")
    

    ggplot(data, aes(x = Promotion, y = Sales)) +
      geom_col(width = 1, fill = "white", color = "black") +
      scale_y_continuous(expand = c(0, 0))
    

    reprex package (v0.2.0) 于 2018 年 5 月 20 日创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      相关资源
      最近更新 更多