【问题标题】:Grouping error using ggplot2 - groups broken up into many parts使用 ggplot2 分组错误 - 分组分成许多部分
【发布时间】:2016-01-02 16:42:52
【问题描述】:

我正在使用一个合并数据集,其中列出了来自数千个产品编号的单个交易。这些产品编号中的每一个都属于不同的产品类别,所有销售都归因于特定的订单平台(在线、电视等)

我想显示一个条形图,其中 x 轴为订单平台,y 轴为销售额(以千计),并按产品类别对条形图进行分组。

如果您看一下我发布的仪表板屏幕截图,我想我已经接近了,但是产品类别组似乎实际上并没有全部分组在同一个位置,而是分散开来。

如果您有任何建议,我很乐意听取大家的意见,如果我解决任何问题,我将继续修补并发布更新。

【问题讨论】:

  • 欢迎来到 stackoverflow (SO)!如果您制作一个最小的可重现示例来解决您的问题,我们更有可能为您提供帮助。我们可以使用和使用的东西向您展示如何解决您的问题。您可以查看this SO post,了解如何在 R 中制作出色的可重现示例。此外,如果您概述了您已经尝试过的内容,也会有所帮助。
  • 试试as.factor(ORDER_PLATFORM)。此外,图表似乎或多或少地播下了你需要的东西。似乎有些类别没有数据,对吗?
  • 您可能必须在绘制之前汇总每个类别的销售额。但正如其他人已经写的那样,如果没有可重复的例子,很难帮助你......
  • 可能每个(产品 X 订单)都有多个记录,并且当您使用 stat=identity 时,您将获得多个相同颜色的条。您(也许)需要在绘图之前汇总数据

标签: r ggplot2 bar-chart


【解决方案1】:

可能每个(产品 X 订单)都有多个记录,并且当您使用 stat=identity 时,您将获得多个相同颜色的条形图。正如 Stibu 在 cmets 中提到的那样,您(也许)需要在绘制之前汇总数据。

使用mtcars 数据集创建一个示例。请注意,每个x 和分组变量都有多个y 值。

ggplot(mtcars, aes(factor(cyl), mpg, fill=factor(gear))) + 
               geom_bar(stat="identity")

这会产生与你相似的情节

您可以通过选择在geom_bar 调用中使用的不同统计数据来获取每个类别的总数。所以在这个例子中计算总数

ggplot(mtcars, aes(factor(cyl), mpg, fill=factor(gear))) +     
               geom_bar(stat="summary", fun.y=sum)

检查总数

aggregate(mpg ~ cyl + gear, mtcars, sum)

您也可以通过使用 ggplot 调用中的聚合数据和stat=identity 来做到这一点

ggplot(aggregate(mpg ~ cyl + gear, mtcars, sum), 
          aes(factor(cyl), mpg, fill=factor(gear))) +  
          geom_bar(stat="identity")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多