R ggplot2颜色比例问题与美学

R ggplot2颜色比例问题与美学,r,ggplot2,R,Ggplot2,我试图制作数据集中项目频率的图表,但在绘图时出现了此错误 不知道如何为类型的对象自动拾取比例 data.frame。默认为连续 错误:长度必须为1或与数据(39123):x相同 这是我使用的数据模型: product_id order_id product_name 1 41899 330425 Oreo Ice Cream Sandwiches 2 122580 1707573

我试图制作数据集中项目频率的图表,但在绘图时出现了此错误

不知道如何为类型的对象自动拾取比例 data.frame。默认为连续

错误:长度必须为1或与数据(39123):x相同

这是我使用的数据模型:

  product_id  order_id                  product_name
1   41899       330425    Oreo  Ice Cream Sandwiches
2  122580      1707573                     Mint Chip
3  146891       622568              Coffee Ice Cream
4  134292      1284843 Belgian Milk Chocolate Gelato
5  146530      2693694   Variety Pack Ice Cream Bars
数据帧的str输出为(前5个值):

我尝试过对绘图代码进行几次更改,但出现了不同的错误

这是我正在使用的代码

orders_group <- group_by(orders_products,order_id)
orders_summ <- as.data.frame(summarise(orders_group, n_items = count(product_name)))

ggplot(orders_summ,aes(x=n_items))+
  geom_histogram(stat="count")+#geom_histogram(fill="indianred", bins = 100000) + 
  geom_rug()+
  coord_cartesian(xlim=c(0,80))+
  scale_fill_manual(values = getPalette(colourCount))

orders\u group我相信这是因为您使用的
count()
不正确
count()
生成一个TIBLE,当您调用
summary
生成数据帧时,该TIBLE会做出奇怪的反应

我必须运行,但乍一看,似乎您创建了一列数据帧(或类似的内容),这可以解释您的ggplot错误。我相信你要找的是:

orders_summ <- orders_products %>%
      group_by(order_id) %>% # normally this step would have produced your orders_group
      summarise(n_items = n())
订单总数%
分组依据(订单id)%>%#通常此步骤会生成您的订单组
总结(n_项=n()

然后尝试运行ggplot代码。

错误消息似乎在抱怨您正在处理的数据对象的类型或结构。在这种情况下,在您使用的各种对象上与use共享
str()
的输出也是有意义的,这样我们就可以真正看到问题所在。最好是一个完全可复制的示例,我们可以自己运行。我添加了我正在使用的数据示例。谢谢,但这实际上没有任何帮助。我特别提到了
str()
,因为仅仅将R中的对象打印到控制台只提供关于其结构的非常有限的信息。同样,一个完全可重复的例子是理想的。我更新了我正在使用的前5个值和'str()'函数的结果。这5个值也有同样的错误。我甚至试着用product\u id更改product\u名称,但也出现了同样的错误。谢谢,我对'n()'函数有点小问题,但可以用
orders_summ <- orders_products %>%
      group_by(order_id) %>% # normally this step would have produced your orders_group
      summarise(n_items = n())